为数组结构成员赋值
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};
我创建了一个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};