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