Go中 使用 & 字符放在变量前面对变量进行“取地址” 操作。 Go中的值类型(int,float,bool,string,array,struct) 都有对应的指针类型,如
(*int, *int64, *string等)
栗子:
func main() {
a := 10
b := &a
fmt.Printf("a:%d ptr:%p\n", a, &a) // a:10 ptr:0xc00001a078
fmt.Printf("b:%p type:%T\n", b, b) // b:0xc00001a078 type:*int
fmt.Println(&b) // 0xc00000e018
}
相当于 把 a 变量的内存地址 放到了 b 变量的值中,而b也有他自己的内存地址。
&就是取地址 *按照地址取值
func main() {
var a *int
*a = 100
fmt.Println(*a)
}
原文:https://www.cnblogs.com/zhukaijian/p/12879962.html