Go 中的指针解引用
在 Go 中,指针解引用涉及访问存储在指针指向的内存地址中的值变量。
问题:
在 Go 教程提供的示例中,未发生指针取消引用的预期行为。当指针变量用于更改结构体的值时,更改不会传播到结构体的取消引用副本。
说明:
t := * q 操作创建 q 指向的结构的副本。随后对 q 所做的任何更改都不会影响 t。这种行为是预料之中的,因为 Go 将指针视为值,而赋值是复制操作。
要观察 t 中通过 q 所做的更改,有必要维护指向结构的指针,而不是复制值。这可以通过将 q 赋值给 t 来实现:
t := q
C/C 比较:
Go 中的指针解引用行为与 C/ 中的类似C.在这两种语言中,指针存储值的地址,并且取消引用它们可以提供对实际值的访问。然而,在 Go 中,对指针的赋值会导致复制值,而在 C/C 中,它们会直接修改引用的值。
以上是为什么在 Go 中取消引用指针不会更新原始结构?的详细内容。更多信息请关注PHP中文网其他相关文章!