什么叫“不学则废”,打算复制个结构体,竟然犹豫是不是需要深拷贝,于是做了以下试验:
#include <stdio.h> #include <stdlib.h> typedef struct STUDENT{ int number; char *name; short sex; }STUDENT; int main(void) { STUDENT stu1 = {100, "zhao", 1}; printf("%s\n", stu1.name); printf("**************************\n"); STUDENT stu2 = stu1; printf("%s\n", stu2.name); printf("**************************\n"); stu1.name = "qian"; printf("stu1.name :%s\n", stu1.name); printf("stu2.name :%s\n", stu2.name); return 0; }
下边是程序运行结果截图:
可以看出来,修改stu1中的值,并没有对stu2造成直接影响,所以说,C语言结构体可以直接用“=”复制。
另外,如果确实不放心,可以用memcpy哦!(〃'▽'〃)