简介
Go 语言的指针的含义是:记录某个变量内存地址的变量
var a int = 42
var p *int = &a
p 就是指针变量
fmt.Println(p) // 输出地址,例如:0xc000014088
fmt.Println(*p) // 输出 42
*p 意思是解引用
基本操作
获取内存地址
a := 100
p := &a
解引用
fmt.Println(*p) // 100
*p = 200
fmt.Println(a) // 200
空指针判断
var p *int
if p == nil {
fmt.Println("p is nil")
}
引用传递
Go 语言中函数的参数默认是值传递,如果想要修改原始值就必须使用指针
func changeValue(p *int) {
*p = 100
}
func main() {
a := 10
changeValue(&a)
fmt.Println(a) // 输出 100
}