Skip to content

指针

https://tour.go-zh.org/moretypes/1

Go 拥有指针。指针保存了值的内存地址。

go
func main() {
	i, j := 42, 2701

	p := &i         // 指向 i
	fmt.Println(*p) // 通过指针读取 i 的值
	*p = 21         // 通过指针设置 i 的值
	fmt.Println(i)  // 查看 i 的值

	p = &j         // 指向 j
	*p = *p / 37   // 通过指针对 j 进行除法运算
	fmt.Println(j) // 查看 j 的值
}

类型 *T 是指向 T 类型值的指针,其零值为 nil。

go
var p *int

& 操作符会生成一个指向其操作数的指针。

go
i := 42
p = &i

*v 为解引用(dereference),读取或修改指针指向的值