您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Golang中“ *”和“&”的含义是什么?

Golang中“ *”和“&”的含义是什么?

您的问题与给出的示例不太吻合,但我会尽量简单明了。

假设我们有一个名为的变量a,它保存整数5,而另一个名为的变量将p是指针。这是*&进入游戏的地方。

与它们一起打印变量可以产生不同的输出,因此这完全取决于情况和使用情况。使用*&可以节省您的代码行( ),并使您的代码更美观/可读性更高。

&返回以下变量的 。

*返回以下变量的 (该变量 保存变量的内存地址,除非您要获取奇怪的输出,否则可能会因为访问计算机的RAM而出现问题)

var a = 5
var p = &a // p holds variable a's memory address
fmt.Printf("Address of var a: %p\n", p)
fmt.Printf("Value of var a: %v\n", *p)

// Let's change a value (using the initial variable or the pointer)
*p = 3 // using pointer
a = 3 // using initial var

fmt.Printf("Address of var a: %p\n", p)
fmt.Printf("Value of var a: %v\n", *p)

总而言之,在使用和&时,请记住是用于设置您要指向的变量的值,而&是您要/想要指向的变量的地址。

希望这个答案有帮助。

Go 2022/1/1 18:16:50 有700人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶