1. 程式人生 > >P、*P和&P三者的區別

P、*P和&P三者的區別

P、P和&P三者的區別
假設我們定義一個指標p。
那麼會經常使用到三個符號:
1,p;
2,p;
3,&p;
初學者經常會感到很迷茫,到底這三個符號表示什麼?
我們知道,p是一個指標變數的名字,表示此指標變數指向的記憶體地址,如果使用%p來輸出的話,它將是一個16進位制數。而
p表示此指標指向的記憶體地址中存放的內容,一般是一個和指標型別一致的變數或者常量。
而我們知道,&是取地址運算子,&p就是取指標p的地址。等會,怎麼又來了個地址,它到底和p有什麼區別?
區別在於,指標p同時也是個變數,既然是變數,編譯器肯定要為其分配記憶體地址,就像程式中定義了一個int型的變數i,編譯器要為其分配一塊記憶體空間一 樣。而&p就表示編譯器為變數p分配的記憶體地址,而因為p是一個指標變數,這種特殊的身份註定了它要指向另外一個記憶體地址,程式設計師按照程式的需要 讓它指向一個記憶體地址,這個它指向的記憶體地址就用p表示。而且,p指向的地址中的內容就用

p表示。