pointer
基本概念
概念
- pointer: 保存变量内存地址的值;
- 零值:
nil; - nil 解引用: 运行时 panic;
func main() {
x := 10
p := &x // & 获取变量地址
*p = 20 // * 解引用并修改指向的值
println(x) // 20
}
指针参数
func addOne(p *int) {
*p = *p + 1
}
func main() {
n := 1
addOne(&n)
println(n) // 2
}
new
概念
new(T): 分配T的零值并返回*T;make: 只用于 slice、map、channel;
func main() {
p := new(int)
*p = 10
println(*p)
}
多级指针
func main() {
x := 1
p := &x // *int
pp := &p // **int
**pp = 2
println(x)
}