在Go中,为什么要使用“ * int”而不是“&int”初始化指向int的指针?

问题描述 投票:0回答:1

例如,当初始化一个指向int的指针时,我们使用:var指针* int

为什么不是语法:var指针&int

对我来说,第二个版本更有意义,因为它看起来像“变量'pointer'是一个int的内存地址”]

或者换句话说,我发现混淆“ *”既用于定义内存地址类型(如上所述),又用于取消引用,例如*指针= 123

这看起来是否令人困惑,我在这里错过了什么吗?

pointers go reference memory-address dereference
1个回答
0
投票

[&address operator,不是类型。

对于类型为x的操作数T地址操作 &x生成类型为*Tx的指针。

但是,确实是*也用作指针间接寻址

对于指针类型为x的操作数*T指针间接指向*x表示由T指向的类型为x的变量>

Tour of Go中所见,*引用类型和运算符。

© www.soinside.com 2019 - 2024. All rights reserved.