基本資料型別,變數存的就是值,也叫值變數;
獲取變數的位址,用&;
package main
import
("fmt"
_"strconv"
)// go 中 指標型別
func main()
// 輸出結果
i的記憶體位址是=
0xc0000100c0
如圖所示:
指標型別,指標變數存的是乙個位址,位址指向的空間存的才是值;
var ptr *int = &num舉栗子:指標在記憶體中的布局
package main
import
("fmt"
_"strconv"
)// go 中 指標型別
func main()
// 輸出結果
i的記憶體位址=
0xc0000100c0
ptr=
0xc0000100c0
ptr位址=
0xc000006030
如圖所示:
獲取指標型別所指向的值,使用*
;
var ptr *int, 使用 *ptr 獲取 ptr 指向的值
package main
import
("fmt"
_"strconv"
)// go 中 指標型別
func main()
// 輸出結果
獲取ptr指標指向的值=
66
舉個案例:
package main
import
("fmt"
_"strconv"
)// go 中 指標型別
func main()
// 輸出結果
獲取 num 的記憶體位址=
0xc0000100c0
獲取 i 的記憶體位址=
0xc0000100c8
獲取 ptr 變數指標=
0xc0000100c8
獲取 ptr 的記憶體位址=
0xc000006028
獲取 ptr 指標指向的值=
99
如圖所示:
寫乙個程式,獲取乙個 int 變數 num 位址,並顯示到終端;
將 num 的位址賦給指標 ptr ,並通過 ptr 去修改 num 的值;
**實現:
package main
import
("fmt"
_"strconv"
)// go 中 指標型別
func main()
// 輸出結果
num 變數 位址=
0xc00006e068
num 的值是=
888
如圖所示:
第一題:
func main()
錯誤原因:第二題:指標變數,接收的是位址,而不可以是乙個值;
var ptr *int = &num
func main()
錯誤原因:第三題:指標 指向的型別 是float64,接收的記憶體位址 儲存的 值型別 也必須是 float64,不可以是int
var num float64 = 666.66
func main()
// 輸出結果:
a="100"
, b=
"200"
,*ptr=
"200"
值型別,都有對應的指標型別,形式為*資料型別
;
比如: int 對應的指標 就是*int,float32 對應的指標就是 *float32;依此類推
值型別
包括:基本資料型別 int系列、float系列、bool、string、陣列、結構體; Go 語言指標
b 什麼是指標 b 乙個指標變數指向了乙個值的記憶體位址。類似於變數和常量,在使用指標前你需要宣告指標。指標宣告格式如下 var var name var type var type 為指標型別,var name 為指標變數名,號用於指定變數是作為乙個指標。以下是有效的指標宣告 var ip int...
GO語言指標
以前學習的語言裡沒有指標操作,剛接觸到go語言指標,消化的比較慢,故寫一下。指標型別宣告 t,指標的型別為 t,例 var i int 指標型別的值 t 在等號左邊表示指標宣告var a int 32 p a p的值是指向a的位址在指標前加 獲取指標p指向的值,例 var a int 32 變數宣告...
Go語言指標
鏈客,專為開發者而生,有問必答!接下來讓我們來一步步學習 go 語言指標。我們都知道,變數是一種使用方便的佔位符,用於引用計算機記憶體位址。go 語言的取位址符是 放到乙個變數前使用就會返回相應變數的記憶體位址。package mainimport fmt func main 以上例項執行輸出結果為...