go基礎 指標

2022-10-09 21:30:18 字數 1125 閱讀 5353

# 指標

go語言中的指標不能進行偏移量和運算

go語言中的指標操作非常簡單只需要記住兩個操作符:&(取位址)和*(根據位址取值)

a := 1 // 每個變數都會有乙個記憶體位址

c := *b // *就是取值,也就是現在c的值也是1

fmt.println(*a) // 這是錯誤的 'a' (型別 'int')的間接引用無效

func m1(a int) 

func m2 (a *int)

b := 1

m1(b)

fmt.println(b) // 1

m2(&b)

fmt.println(b) // 10

當乙個指標被定義後沒有分配到任何變數時,它的值為 nil

var a *string

fmt.println(a) // nil

fmt.printf("a的值是%v\n", a) // a的值是

if a == nil  else
// new 是乙個內建的函式

a := new(int) // 宣告乙個指標變數

b := new(bool)

fmt.printf("%t\n", a) // *int

fmt.printf("%t\n", b) // *bool

fmt.println(*a) // 0

fmt.println(*b) // false

*a := 10 // 賦值

fmt.pringln(*a) // 10

// make也是用於記憶體分配的,區別於new,它只用於slice、map以及chan的記憶體建立,而且它返回的型別就是這三個型別本身,而不是他們的指標型別

b := make(map[string]int, 10)

b["嗨害嗨"] = 100

fmt.println(b) // map[嗨害嗨:100]

Go語言 基礎 指標

區別於c c 中的指標,go語言中的指標不能進行偏移和運算,是安全指標。go語言中的函式傳參都是值拷貝,當我們想要修改某個變數的時候,我們可以建立乙個指向該變數位址的指標變數。傳遞資料使用指標,而無須拷貝資料。型別指標不能進行偏移和運算。go語言中的指標操作非常簡單,只需要記住兩個符號 取位址 和 ...

Go 基礎之指標

區別於c c 中的指標,go語言中的指標不能進行偏移和運算,是安全指標。任何程式資料載入記憶體後,在記憶體都有他們的位址,這就是指標。而為了儲存乙個資料在記憶體中的位址,我們就需要指標變數。比如,永遠不要高估自己 這句話是我的座右銘,我想把它寫入程式中,程式一啟動這句話是要載入到記憶體 假設記憶體位...

Go語言基礎之指標

go語言中的函式傳參都是值拷貝,當想修改某個變數時,就使用指標來操作。go中的指標 取位址 根據位址取值 每個變數在執行時都有乙個記憶體位址。go中使用 變數名,對變數進行取位址操作。go中的值型別 int float bool string array struct 都有對應的指標型別如 int ...