本身做Java比较多,直接在C中将一个结构体赋值给另一个结构体时,不太确定会发生什么事。下面写了一个小例子测试。
结论是:
C结构体直接复制类似于深拷贝,改变被修改的结构体不会影响到原来的结构体。
代码:
#include <stdio.h>
typedef struct{
char *name;
int age;
}student;
int main(){
student a,b;
a.name = "zhangsanfeng";
a.age = 23;
b.name = "lisi";
b.age = 25;
a = b;
printf(a.name);
a.name = "i changed";
printf("\na.name: %s\n",a.name);
printf("b.name: %s\n",b.name);
printf("\n");
return 0;
}
本文通过一个简单的C语言程序实例,展示了当一个结构体被赋值给另一个结构体时,这种操作实际上实现了深拷贝的效果。即修改其中一个结构体的内容不会影响到另一个结构体。
1554

被折叠的 条评论
为什么被折叠?



