Go 语言中,声明一个指针变量的示例如下:
var p * int
-
变量名为
p, 其中的* int为变量的类型。对* int进一步拆解,*表明了p是一个指针变量,用来存储一个地址,而int是指针的元素类型,也就是当p中存了一个有效地址的时候,该地址测处的内存会被解释为int类型。 -
无论指针的元素类型是什么,指针变量本身的格式都是一致的,即一个无符号整型,变量大小能够容纳当前平台的地址。例如,在 386 架构上是一个 32 位无符号整型,在 amd64 架构上是一个 64 位无符号整型。
-
有着不同元素类型的指针被视为不同类型,这是语言设计层面强加的一层安全限制,因为不同的元素类型会使编译器对同一个内存地址进行不同的解释。







网友评论