在C语言中,给一个struct数组赋值可以通过以下两种方法:
- 逐个给每个元素赋值:
#includestruct Student { char name[50]; int age; }; int main() { struct Student students[3]; strcpy(students[0].name, "Alice"); students[0].age = 20; strcpy(students[1].name, "Bob"); students[1].age = 21; strcpy(students[2].name, "Cathy"); students[2].age = 22; // 打印输出每个学生的信息 for (int i = 0; i < 3; i++) { printf("Student %d: Name = %s, Age = %d\n", i+1, students[i].name, students[i].age); } return 0; }
- 使用初始化列表初始化:
#includestruct Student { char name[50]; int age; }; int main() { struct Student students[3] = { {"Alice", 20}, {"Bob", 21}, {"Cathy", 22} }; // 打印输出每个学生的信息 for (int i = 0; i < 3; i++) { printf("Student %d: Name = %s, Age = %d\n", i+1, students[i].name, students[i].age); } return 0; }
上面的示例代码分别展示了逐个赋值和使用初始化列表两种方法给struct数组赋值的方式。需要注意的是,在使用初始化列表的情况下,数组大小必须和初始化列表中的元素数量保持一致。