为什么这些指针差异导致不同的结果?

sun*_*974 0 c struct pointers typedef

假设我有一些typedef struct {int b;} some_t;指向a这种结构的指针.那为什么呢

(*a).b = 5;
Run Code Online (Sandbox Code Playgroud)

不一样的

some_t c = *a;
c.b = 5;
Run Code Online (Sandbox Code Playgroud)

GMa*_*ckG 5

在第二个,c复制*a,而且c.b是复印件(*a).b.

c.b = 5 修改副本,而不是原始副本.