为了账号安全,请及时绑定邮箱和手机立即绑定

结构体的内存地址不可见

结构体的内存地址不可见

Go
慕莱坞森 2021-09-27 17:39:42
在 Go 中,我很困惑为什么可以获取 int 等变量的内存地址,而不能获取 struct 的内存地址。举个例子:package mainimport "fmt"func main() {stud1 := stud{"name1", "school1"}a:=10fmt.Println("&a is:", &a)fmt.Println("&stud1 is:",&stud1)}输出是:&a is: 0x20818a220&stud1 is: &{name1 school1}为什么 &a 给出内存地址,但是 &stud1 没有给出确切的内存位置。我无意使用内存地址,只是对不同的行为感到好奇。
查看完整描述

1 回答

?
德玛西亚99

TA贡献1770条经验 获得超3个赞

fmt包使用反射来打印值,并且有一种特定情况可以将指向结构的指针打印为&{Field Value}.

如果要查看内存地址,请使用指针格式化动词%p

fmt.Printf("&stud is: %p\n", &stud)


查看完整回答
反对 回复 2021-09-27
  • 1 回答
  • 0 关注
  • 196 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信