本身做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;
}