环境
go version go1.10.1 darwin/amd64
指针
Go 具有指针。 指针保存了变量的内存地址。
类型 `*T` 是指向 T 类型值的指针。其零值为 nil 。
var p *int
& 操作符会生成一个指向其操作数的指针。
i := 42
p = &i
* 操作符表示指针指向的底层值。
fmt.Println(*p) // 通过指针 p 读取 i
*p = 21 // 通过指针 p 设置 i
这也就是通常所说的"间接引用"或"重定向"。
与 C 不同,Go 没有指针运算。
示例如下
package main
import "fmt"
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的新值
}
可以从注释上理解下指针的用法
版权声明
由 durban创作并维护的 小绒毛的足迹博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证。
本文首发于 博客( https://www.xiaorongmao.com ),版权所有,侵权必究。