这篇文章当时写的比较随意,考虑到看到这篇文章的人比较多,我重新写了一篇比较完整的发布在我的新博客中,大家可以参考:
一直记得C语言中,结构体是不可以直接赋值的。我问了三个同学,都说在C++中可以,在C语言中不可以,需要逐一成员赋值或者用memcpy函数。
我测试了一下如下的程序:
#include <stdio.h>
#include <stdlib.h>
struct test
{
int a;
int b;
char ss[10];
};
int main()
{
struct test t1 = {1, 2, "hello"}; // 初始化
struct test t2;
t2 = t1; // 赋值运算符
printf("%d, %d, %s\n", t2.a, t2.b, t2.ss);
return 0;
}
答案是可以直接赋值的。
参考
http://*.com/questions/1575181/why-operator-works-on-structs-without-having-been-defined