例如,当初始化一个指向int的指针时,我们使用:var指针* int
为什么不是语法:var指针&int
对我来说,第二个版本更有意义,因为它看起来像“变量'pointer'是一个int的内存地址”]
或者换句话说,我发现混淆“ *”既用于定义内存地址类型(如上所述),又用于取消引用,例如*指针= 123
这看起来是否令人困惑,我在这里错过了什么吗?
[&
是address operator,不是类型。
对于类型为
x
的操作数T
,地址操作&x
生成类型为*T
到x
的指针。
但是,确实是*
也用作指针间接寻址:
对于指针类型为
x
的操作数*T
,指针间接指向*x
表示由T
指向的类型为x
的变量>如Tour of Go中所见,
*
引用类型和运算符。