数组的元素也可以是结构类型,因此可以声明结构体数组,结构体数组的每一个元素都是具有相同结构类型的变量。在实际应用中,经常用结构数组来表示具有相同数据结构的数据集合。例如:学习信息管理程序的学生信息、图书管理系统的图书信息等。
声明结构体数组变量的语法和声明其它数据类数组的语法相同,声明结构体数组变量时,一般要指定数组的长度,然后在程序中对数组元素进行赋值。
例如,可以创建一个包含10个学生的结构体数组:
struct STUDENT students[10];
这个students数组包含了10个STUDENT结构体,可以通过数组索引来访问或修改数组内的结构体元素,
你可以通过数组索引来访问和修改这些结构体中的成员。下面的代码设置第一个学生的名字、年龄:
students[0].age = 20;
students[0].name = "张三";
例【1】 遍历结构体数组元素
程序清单
#include <stdio.h>
#include <string.h>
// 定义学生结构体
typedef struct {
char name[50];
int age;
float score;
} Student;
int main() {
int i;
// 初始化学生数组
struct STUDENT students[3] = {
{"张三", 20},
{"李四", 21},
{"王五", 19}
};
// 遍历学生数组并打印信息
printf("学生信息:\n");
for(i = 0; i < 3; i++) {
printf("姓名:%s,年龄:%d", students[i].name, students[i].age);
}
return 0;
}
案例代码定义了一个名称为STUDENT的结构体,其中包含学生的姓名(一个字符数组)、年龄(一个整数)。然后,在main函数中,创建一个包含3个学生的STUDENT结构体数组,并初始化每个学生的信息。使用一个for循环遍历这个数组,并使用printf函数打印出每个学生的姓名和年龄。