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 ???