struct student {
int marks[3];
int numberofsubjects[3];
};
我创建: 指导学生;
在我的.c文件中,
如果我尝试使用进行分配
student.marks = {99,99,99};
我确实看到了错误:'{'令牌之前的预期表达
有什么我想念的吗?
答案 0 :(得分:1)
只能在定义变量时使用初始化程序。您无法定义变量,然后尝试稍后使用初始化程序对其进行初始化。您将必须赋值值到结构的数组字段的元素,或者在定义时使用初始化程序。
struct student student = { { 99, 99, 99 },
{ 1, 2, 3 } };
或更妙的是,使用指定的初始化程序:
struct student student = { .marks = { 99, 99, 99 },
.numberofsubjects = { 1, 2, 3 }};
答案 1 :(得分:0)
最主要的是您不能分配完整的数组;仅在定义变量的过程中允许这样做(此后称为初始化),但是一旦定义了变量,就不再允许这样做。
请参阅以下初始化(允许):
struct student {
int marks[3];
int numberofsubjects[3];
};
int main() {
struct student s = { {1,2,3},{3,4,5}}; // in the course of variable definition; OK, this is "initialization"
// s.marks = { 2,3,4 }; // illegal assignment of array
return 0;
}