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

通过结构指针定义结构

通过结构指针定义结构

Go
吃鸡游戏 2021-06-27 02:05:11
我不明白为什么在sp用结构指针 ( &s)定义结构 ( )后,初始结构 ( s) 不断被修改,同时改变后者 ( sp)。http://play.golang.org/p/TdcL_QJqfBtype person struct {    name string    age int}func main() {    s := person{name: "Sean", age: 50}    fmt.Printf("%p : %g\n", &s, s.age)    sp := &s    fmt.Printf("%p : %g\n", &sp, sp.age)    sp.age = 51    fmt.Printf("%p : %g\n", &sp, sp.age) // yield 51    fmt.Printf("%p : %g\n", &s, s.age) // yields 51, but why not 50 ???}输出:0xc0100360a0 : %!g(int=50)0xc010000000 : %!g(int=50)0xc010000000 : %!g(int=51)0xc0100360a0 : %!g(int=51) // why not 50 ???
查看完整描述

1 回答

?
潇湘沐

TA贡献1816条经验 获得超6个赞

你有一个对象s。和一个指向sps。因此,当您设置agethrough 时sp,您实际上是在修改s.

记住,sp不是一个单独的对象。这就像一个别名。


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

添加回答

举报

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