为数组结构成员赋值

Assigning values to an array Structure member

我创建了一个C结构如下,

struct student{
int regNo;
char *name;
int age;
int marks[5]; 
};

然后我创建了一个student对象作为S1,并尝试给结构成员一个一个赋值

struct student s1;
s1.regNo= 2312;
s1.name = "Andrew";
s1.age = 20;
s1.marks[5] = { 90,89,70,58,88};

但是当我给标记的 int 数组赋值时,它给我一个编译错误,

3.c: In function 'main':
3.c:18:16: error: expected expression before '{' token
s1.marks[] = { 90,89,70,58,88};

但是当我尝试分别为每个索引分配值时,

s1.marks[0] = 90;
s1.marks[1] = 89;
s1.marks[2] = 70;
s1.marks[3] = 58;
s1.marks[4] = 88;

问题已解决。

请问我第一次尝试做错了什么,我一次性给数组赋值?

{90,89,70,58,88} 是数组 initialiser 的示例。它仅在声明变量时有效,例如以下是有效的。

int array[5] = {90,89,70,58,88};

但这不是:

int array[5];
array = {90,89,70,58,88};