Go語言學習 十七 指針

本文最初發表在我的個人博客,查看原文,獲得更好的閱讀體驗


Go語言有指針的概念,指針保存了值的內存地址。指針的零值爲nil。指針類型表示指向給定類型的變量的所有指針的集合,該類型稱爲指針的基本類型。

給定一個類型T,其中類型*T是指向T類型值的指針:

package main

import "fmt"

func main() {
	var p *int

	i := 5

	p = &i // 指針指向變量i

	fmt.Println(p)
	fmt.Println(*p)

	*p = 10        // 使用指針給變量賦值
	fmt.Println(i) // 10

	*p = *p * 7    // 使用指針進行運算
	fmt.Println(i) // 70
}

取址操作符(&)會生成一個指向其操作數的指針:

i := 5
p = &i // 指針指向變量i

星號(*)操作符表示指針指向的底層值:

fmt.Println(*p) // 通過指針 p 讀取 i
*p = 10         // 通過指針 p 設置 i

這也就是通常所說的“間接引用”或“重定向”。另外,Go語言中沒有指針運算。

參考:
https://golang.org/ref/spec#Pointer_types
https://tour.golang.org/moretypes/1

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章