结构体是一种由若干个不同类型的数据组成的数据类型,它可以表示一个实体的多个属性。结构体数组则是由多个结构体组成的数组形式,每个结构体包含相同的属性,但属性值可能不同。
例如,我们可以定义一个结构体表示学生的基本信息,包含姓名、年龄、性别等属性,然后使用结构体数组来存储多个学生的信息。
定义结构体数组的语法为:
struct Student {
char name[20];
int age;
char gender;
} students[3]; // 定义包含3个结构体的数组
// 或者可以先定义结构体,再定义数组
struct Student {
char name[20];
int age;
char gender;
};
struct Student students[3]; // 定义包含3个结构体的数组
结构体数组的初始化可以通过以下方式实现:
struct Student {
char name[20];
int age;
char gender;
} students[3] = {
{"Tom", 18, 'M'},
{"Jerry", 19, 'F'},
{"Amy", 17, 'F'}
};
上面的代码定义了一个包含3个学生结构体的数组,并用一组初始化值为每个学生的属性进行了初始化。
结构体数组可以通过下标访问其中的元素,例如访问第一个学生的姓名可以使用 students[0].name
,访问第二个学生的年龄可以使用 students[1].age
。
结构体数组的遍历可以使用 for 循环:
struct Student {
char name[20];
int age;
char gender;
} students[3] = {
{"Tom", 18, 'M'},
{"Jerry", 19, 'F'},
{"Amy", 17, 'F'}
};
for (int i = 0; i < 3; i++) {
printf("Name: %s, Age: %d, Gender: %c\n", students[i].name, students[i].age, students[i].gender);
上面的代码实现了对结构体数组中每个学生的遍历,并输出了每个学生的属性。
结构体数组可以应用在多种场景下,例如:
在实际编程中,结构体数组也是一种常见的数据结构类型,经常被用来管理和处理大量的实体信息。