Go 有指针。 指针保存一个值的内存地址。
类型 *T 是指向 T 类型值的指针。它的零值为 nil。
*T
T
nil
var p *int
& 运算符会生成一个指向其操作数的指针。
&
i := 42 p = &i
* 运算符表示指针所指向的底层值。
*
fmt.Println(*p) // 通过指针 p 读取 i *p = 21 // 通过指针 p 设置 i
这称为“解引用”或“间接引用”。
与 C 不同,Go 没有指针运算。