這幾個個東東很具有迷惑性。
int a=10; //假設a的位址是 0x0000004C
int *p; //假設p的位址是 0x0035FA94
p=&a;
指針的内容:指針裡面存放的是位址。
指針p裡面存放的是a的位址(&a)。即指針p裡面存放的内容是0x0000004C。
指針的位址:指針本身的位址。
指針p的位址就是&p。指針p的位址是0x0035FA94
指針所指向的内容:也就是指針裡面存放的位址,那塊位址裡面存放的内容,通過對指針進行*引用可以拿到那個值。
*p就是指針所指向的内容(*p=10)。
指針的類型:從文法上,隻要去掉指針聲明中指針的名字,剩下的就是指針的類型。
例如:1、 int *p; 的類型是int。
2、 char *p;的類型是char。
3、void *p; 空類型的指針。
指針所指向的類型:當通過指針來通路所指向的記憶體時,指針所指向的類型 決定了編譯器将指針所指向的記憶體區裡面的内容 當做什麼類型來看待。
例:1、int *p;指針所指向的類型是int;
2、char *p;指針所指向的類型是char;
3、int (*p)[2];所指向的類型是int()[2]