这篇文章当时写的比较随意,考虑到看到这篇文章的人比较多,我重新写了一篇比较完整的发布在我的新博客中,大家可以参考:
一直记得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