C语言结构体可以直接用“=”复制

什么叫“不学则废”,打算复制个结构体,竟然犹豫是不是需要深拷贝,于是做了以下试验:

#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哦!(〃'▽'〃)

猜你喜欢

转载自blog.csdn.net/aaricyang/article/details/79941063