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表示。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM