go 關於指標和位址

2022-09-05 12:15:10 字數 407 閱讀 1485

經常會見到: p . *p , &p 三個符號 

p是乙個指標變數的名字,表示此指標變數指向的記憶體位址,如果使用%p來輸出的話,它將是乙個16進製制數。

而*p表示此指標指向的記憶體位址中存放的內容,一般是乙個和指標型別一致的變數或者常量。 

而我們知道,&是取位址運算子,&p就是取指標p的位址。等會,怎麼又來了個位址,它到底和p有什麼區別?

區別在於,指標p同時也是個變數,既然是變數,編譯器肯定要為其分配記憶體位址,就像程式中定義了乙個int型的變數i,編譯器要為其分配一塊記憶體空間一樣。

而&p就表示編譯器為變數p分配的記憶體位址,因為p是乙個指標變數,這種特殊的身份注定了它要指向另外乙個記憶體位址,程式設計師按照程式的需要讓它指向乙個記憶體位址,這個它指向的記憶體位址就用p表示。

而且,p指向的位址中的內容就用*p表示。

關於陣列位址,指標

1.以下三條輸出語句分別輸出什麼?char str1 abc char str2 abc const char str3 abc const char str4 abc const char str5 abc const char str6 abc cout boolalpha str1 str2 ...

go語言記憶體,位址,指標

指標就是位址 列印出變數的記憶體和位址 a可以取到a的位址 簡單說可以說位址就是索引,就是門牌號,記憶體就是倉庫,裡面存了東西,存了值 package main import fmt func main int儲存int的位址,int儲存int的位址 定義乙個變數p,型別為 int var p in...

go 關於變數位址的疑惑

定義一些變數,並輸出其位址 一 一般變數 var a,b int32 var c,d int64 輸出其位址 結果 a 0xc082006310 b 0xc082006320 c 0xc082006330 d 0xc082006340 結論 它們的位址間隔均為16位元組,其它空餘的位址浪費了?二 陣...