假設我們定義乙個指標p。
那麼會經常使用到三個符號:
1,p;
2,*p;
3,&p;
我們知道,p是乙個指標變數的名字,表示此指標變數指向的記憶體位址,如果使用%p來輸出的話,它將是乙個16進製制數。而*p表示此指標指向的記憶體位址中存放的內容,一般是乙個和指標型別一致的變數或者常量。
而我們知道,&是取位址運算子,&p就是取指標p的位址。等會,怎麼又來了個位址,它到底和p有什麼區別?
區別在於,指標p同時也是個變數,既然是變數,編譯器肯定要為其分配記憶體位址,就像程式中定義了乙個int型的變數i,編譯器要為其分配一塊記憶體空間一 樣。而&p就表示編譯器為變數p分配的記憶體位址,而因為p是乙個指標變數,這種特殊的身份注定了它要指向另外乙個記憶體位址,程式設計師按照程式的需要 讓它指向乙個記憶體位址,這個它指向的記憶體位址就用p表示。而且,p指向的位址中的內容就用*p表示。
尊重智財權:
c語言指標學習筆記
example 1 int a,b,p,q p a p a p q b p p a 錯誤,因為p實際上是乙個位址,而a是乙個整型值 p q 錯誤,因為這句話的意思是 將位址q指向的單元的值賦給位址p。而實際上p是乙個位址,是不能存值得 p a 錯誤 注意,如果這樣定義了 p,那麼 p表示位址 指標 ...
C 語言指標學習筆記
前敘 原先對c語言的學習,對指標有恐懼感.當c語言學到一定的程度的時候,再學習指標有種水到渠成的感覺。對指標變數的定義包括三個內容 1 指標型別說明,即定義變數為乙個指標變數 2 指標變數名 3 變數值 指標 所指向的變數的資料型別 一般是這樣的 型別說明符 變數名 int p 這個小星星號 表示這...
c語言指標學習筆記
1.運算子 位址的大小是否與int相同取決於編譯器。32位是4位元組,64位是8位元組。因此位址的輸出不能是 x,應該是 p。2.指標int i int p i int p,q int p,q 3.指標作函參 訪問這個位址上的變數需要使用到單目運算子 接著可以通過指標使用和改寫這個變數。int i ...