Go 指针 - go 训练营
变量是存储值的地方。
x := 1
指针的值是变量的地址,一个指针指示值在内存中所保存的位置。使用指针,可以间接读取或更新变量的值。
p := &x
表达式 &x 获取一个指向整形变量的指针,它的类型是整型指针(*int),如上,可以称 p 指向 x,或者 p 包含 x 的地址。p 指向的变量写做 *p。
*p = 2
表达式 *p 获取变量的值,可以用于更新变量的值。
var p *int
指针类型的零值是 nil。
函数可以返回局部变量的地址,如下:
var p = f()
func f() int* {
v := 1
return &v
}
通过调用 f 产生的局部变量 v 即使在调用返回后依然存在,指针 p 依然引用它,每次调用 f 都会返回一个不同的值。
因为指针包含变量地址,所以传递一个指针参数给函数,能够让函数间接更新传递变量的值。
func incr(p * int) int {
*p++
return *p
}
v := 1
incr(&v)
fmt.Println(incr(&v))//3
欢迎参加 Go 训练营挑战,这些挑战将帮助你逐步掌握 Go 开发。Go(又称Golang)是 Google 开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。在 2016 年,Go 被软件评价公司 TIOBE 选为“TIOBE 2016年最佳语言”。