定义结构体数组
在编程中,结构体(struct)是一种用户自定义的数据类型,它允许我们将多个不同类型的数据组合成一个单独的数据类型。结构体数组则是这种自定义数据类型的集合,也就是说,我们可以创建一个数组,其每个元素都是一个结构体。
结构体数组在许多场景中都非常有用,例如当我们需要存储一系列具有相同属性的对象时,如学生信息、产品信息等。通过使用结构体数组,我们可以方便地管理这些对象,并对它们进行各种操作。
下面是一个关于定义结构体数组的例子,以存储学生信息为例,包括学生的姓名、学号和成绩:
c复制代码
|
#include <stdio.h> |
|
#include <string.h> |
|
|
|
// 定义学生信息的结构体 |
|
struct Student { |
|
char name[50]; |
|
int id; |
|
float score; |
|
}; |
|
|
|
int main() { |
|
// 定义并初始化一个包含3个学生信息的结构体数组 |
|
struct Student students[3] = { |
|
{"张三", 1001, 85.5}, |
|
{"李四", 1002, 92.0}, |
|
{"王五", 1003, 78.0} |
|
}; |
|
|
|
// 遍历结构体数组并打印学生信息 |
|
for (int i = 0; i < 3; i++) { |
|
printf("学生姓名: %s\n", students[i].name); |
|
printf("学号: %d\n", students[i].id); |
|
printf("成绩: %.1f\n", students[i].score); |
|
printf("\n"); |
|
} |
|
|
|
// 假设我们要修改第一个学生的成绩 |
|
students[0].score = 88.5; |
|
|
|
// 再次打印第一个学生的信息,以验证修改是否成功 |
|
printf("修改后的第一个学生信息:\n"); |
|
printf("学生姓名: %s\n", students[0].name); |
|
printf("学号: %d\n", students[0].id); |
|
printf("成绩: %.1f\n", students[0].score); |
|
|
|
return 0; |
|
} |
在上面的代码中,我们首先定义了一个名为Student的结构体,包含三个成员:name(学生的姓名),id(学生的学号)和score(学生的成绩)。然后,我们在main函数中定义了一个包含三个Student结构体的数组students,并对每个结构体元素进行了初始化。
接着,我们使用一个for循环遍历这个结构体数组,并打印出每个学生的信息。之后,我们修改了第一个学生的成绩,并再次打印出该学生的信息,以验证修改是否成功。
通过使用结构体数组,我们可以方便地管理和操作一组具有相同属性的数据。在实际编程中,根据具体的需求,我们可以定义更复杂的结构体,并在结构体数组中存储更多的数据。