CodeFun Go

指针

Go 支持指针。指针保存了值的内存地址。

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

var p *int

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

i := 42
var p = &i

* 操作符表示指针指向的底层值。

fmt.Println(*p) // 通过指针 p 读取 i
*p = 21         // 通过指针 p 设置 i

这也就是通常所说的“间接引用”或“重定向”。

package main

import "fmt"

func main() {
	var a int = 3
	var pointerA *int = &a
	*pointerA = 22
	fmt.Println(a, *pointerA)
	a = 11
	fmt.Println(a, *pointerA)
}
22 22
11 11