假設咱們定義一個指針p。
那麼會常用到三個符號:
1,p;
2,*p;
3,&p;
初學者常常會感到很迷茫,到底這三個符號表示什麼?
咱們知道,p是一個指針變量的名字,表示此指針變量指向的內存地址,若是使用%p來輸出的話,它將是一個16進制數。而*p表示此指針指向的內存地址中存放的內容,通常是一個和指針類型一致的變量或者常量。
而咱們知道,&是取地址運算符,&p就是取指針p的地址。等會,怎麼又來了個地址,它到底和p有什麼區別?
區別在於,指針p同時也是個變量,既然是變量,編譯器確定要爲其分配內存地址,就像程序中定義了一個int型的變量i,編譯器要爲其分配一塊內存空間一 樣。而&p就表示編譯器爲變量p分配的內存地址,而由於p是一個指針變量,這種特殊的身份註定了它要指向另一個內存地址,程序員按照程序的須要 讓它指向一個內存地址,這個它指向的內存地址就用p表示。並且,p指向的地址中的內容就用*p表示。