指针的声明:
a:=99
var b *int
b=&a
c:=88
d:=&c
这时指针b和d的内容是a和c的内存地址。
0xc042054080
0xc0420540b0
go中的指针是不能运算的:
e:=55
f:=&e
f++
报错:
invalid operation: f++ (non-numeric type *int)
要想获取指针所指向变量的值,需要解引用:*a。
a:=99
var b *int
b=&a
fmt.Println(b)
fmt.Println(*b)
c:=88
d:=&c
fmt.Println(d)
fmt.Println(*d)
0xc042054080
99
0xc0420540b0
88
向函数传递指针参数
func change(num *int){
*num=66
}
func main() {
b:=55
fmt.Println(b)
a:=&b
change(a)
fmt.Println(b)
}
55
66