结构体之间是怎么赋值的?
本帖最后由 linvvavn 于 2019-7-17 20:17 编辑刚搞懂了指针和数组名的关系,新的疑惑来了。
定义了一个结构体
struct superstar
{
char name;
int age;
int sex;
};
先分别定义了结构体变量和结构体数组,观察了其在内存中的排序,结果不出所料都是一块连续的内存空间。
然后想知道结构体变量之间是否可以相互赋值,测试结果可以
就想知道结构体变量之间是怎么实现赋值的,所以定义了两结构体变量 a,b,分别输出值和地址,然后没比出啥来
后来想了想,假如我定义了 int a =1,int b=a;是吧a的值1写进b所在的内存里,同理,结构体a里面所有的值写进了结构体b所在的内存,好吧,有点想通了,然鹅新问题又来了,计算机是怎么把那么多值写进内存的………………
其实我也不造自己想问啥,好像已经想明白了,又好像挺迷茫的………………
应该是在编译时编译器帮你处理了赋值部分 声明时,即分配空间.并没有初始化.而b=a时,实际就是b.a = a.ab.b = a.b
页:
[1]