指針的類型是什么:
將指針的名字去掉即可
指針指向的是什么類型:
將指針的名字以及指針左邊的*去掉
指針指向了哪里:
指針所指向的內(nèi)存區(qū)就是從指針的值所代表的那個內(nèi)存地址開始,長度為sizeof(指針所指向的類型)的一片內(nèi)存區(qū)。以后,說一個指針的值是XX,就相當于說該指針指向了以XX為首地址的一片內(nèi)存區(qū)域;我們說一個指針指向了某塊內(nèi)存區(qū)域,就相當于說該指針的值是這塊內(nèi)存區(qū)域的首地址。
int *ptr //指針的類型是int * 指針指向的類型是int
int **ptr//指針的類型是int ** 指針指向的類型是int *
Example1:
int array[20];
int *ptr = array;
//此處略去為整型數(shù)組賦值的代碼。
for(i = 0;i<10;i++)
{
(*ptr)++; //array的值加1
ptr++; //array的地址加1 如果是32位程序,則是加4(字節(jié)),因為地址是由字節(jié)構(gòu)成的。
}
指針表達式:
一個表達式的最后結(jié)果如果是一個指針,那么這個表達式就叫指針表達式。
函數(shù)指針:
可以把一個指針聲明成為一個指向函數(shù)的指針
ex:
int fun(char*,int);
int (*pfun)(char*,int);
pfun = fun;
//
int a =(*pfun)("abcdefg",7);