Pointers 用结构指针定义struc
我不明白为什么在用结构指针(Pointers 用结构指针定义struc,pointers,struct,go,Pointers,Struct,Go,我不明白为什么在用结构指针(&s)定义了一个结构(sp)之后,初始结构(s)在对后者(sp)进行变异的同时不断被修改 输出: 0xc0100360a0 : %!g(int=50) 0xc010000000 : %!g(int=50) 0xc010000000 : %!g(int=51) 0xc0100360a0 : %!g(int=51) // why not 50 ??? 我不熟悉C族语言,Go和指针,所以任何指向正确概念或错误的指针(:)都将非常感谢您。提前谢谢 您有一个对象s。以及一个
&s
)定义了一个结构(sp
)之后,初始结构(s
)在对后者(sp
)进行变异的同时不断被修改
输出:
0xc0100360a0 : %!g(int=50)
0xc010000000 : %!g(int=50)
0xc010000000 : %!g(int=51)
0xc0100360a0 : %!g(int=51) // why not 50 ???
我不熟悉C族语言,Go和指针,所以任何指向正确概念或错误的指针(:)都将非常感谢您。提前谢谢 您有一个对象
s
。以及一个指向s
的指针sp
。因此,当您通过sp
设置age
时,实际上是在修改s
请记住,
sp
不是一个单独的对象。它就像一个别名。您有一个对象s
。以及一个指向s
的指针sp
。因此,当您通过sp
设置age
时,实际上是在修改s
请记住,
sp
不是一个单独的对象。它就像一个别名。好的,知道了sp
只是指向s
的指针,而不是它的副本。我错了。谢谢你的帮助@Sergiook,明白了sp
只是指向s
的指针,而不是它的副本。我错了。感谢您的帮助@Sergio,因为指针指向与原始结构相同的内存。。。您请求这样做…因为指针指向与原始结构相同的内存。。。你要求如此。。。
0xc0100360a0 : %!g(int=50)
0xc010000000 : %!g(int=50)
0xc010000000 : %!g(int=51)
0xc0100360a0 : %!g(int=51) // why not 50 ???