Go 語言 指標的使用

2021-10-01 22:22:41 字數 2813 閱讀 8981

基本資料型別,變數存的就是值,也叫值變數

獲取變數的位址,用&

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 以上例項執行輸出結果為...