我知道Go指针的地址有什么区别。
var int *a = new(int)
我可以这样定义指针变量。 当我检查此变量的地址时,发现了另一个地址。
fmt.Println(a, &a)
我想知道这些地址有什么区别。enter code here
答案 0 :(得分:3)
a
是指针类型的变量,这意味着它保存的数据是内存地址。因此,打印a
会打印它所持有的内存地址,即它所指向的变量的地址。
a
是一个变量,它存储在内存中的某个位置,a
本身也有一个地址,而&a
是该地址。
因此,您有2个变量:a
和一个由new(int)
创建的变量,其地址由new()
返回,并且我们将其存储在a
中。
请阅读以下内容,以获取简短而简短的指针介绍:
Dave Cheney: Understand Go pointers in less than 800 words or your money back