你那个第一种做法叫初始化,C语言允许结构体初始化,但不允许第二种那样赋值 如果你写 struct student { int a; int b; }; struct student a={1,2}; 也是对的,这就叫初始化 至于怎么样才能做到直接赋值,C语言里面并没有这样的操作 重载操作符也是C++里面的了 不过你可以这样struct student b={1,2};a=b; C语言里面2个结构体之间是可以复制的 或者你也可以定义一个函数来做,函数体里面要用挨个赋值的方式
struct student
{
int a;
int b;
}a={1,2},b;//正确
_________________________
struct student
{
int a;
int b;
}a,b;
a={1,2}; //错误
这样不行的话有没有什么简便的定义方法
最佳答案