C 语言编程中的结构体数组:结构体可用于将不同的数据类型分组,从而以结构化的方式组织数据。而数组则用于对相同数据类型的值进行分组。本文将通过一个实际示例向您展示结构体数组的概念。
在 C 语言的结构体数组示例中,我们存储员工的详细信息,如姓名、ID、年龄、地址和薪水。我们通常将它们分组为包含上述成员的员工结构体。我们可以创建结构体变量来访问或修改其成员。一家公司可能有 10 到 100 名员工。那么如何存储 100 名员工的相同信息呢?
在 C 语言编程中,我们可以通过结合两个强大的概念,即结构体数组,轻松解决上述问题。我们可以创建一个员工结构体。然后,我们不创建单个变量,而是创建一个结构体变量的数组。
在初始化时声明 C 结构体数组
让我在结构体初始化时声明它。
struct Employee
{
int age;
char name[50];
int salary;
} Employees[4] = {
{25, "Suresh", 25000},
{24, "Tutorial", 28000},
{22, "Gateway", 35000},
{27, "Mike", 20000}
};
在这里,Employee 结构体存储了员工的详细信息,如年龄、姓名和薪水。我们在声明时就创建了 C 结构体数组变量 Employees[4](大小为 4)。我们还为所有 4 名员工的每个结构体成员初始化了值。
从上面的 C 语言编程代码中,
Employees[0] = {25, "Suresh", 25000}
Employees[1] = {24, "Tutorial", 28000}
Employees[2] = {22, "Gateway", 35000}
Employees[3] = {27, "Mike", 20000}
在 main() 函数中声明
struct Employee
{
int age;
char name[50];
int salary;
};
在 main() 函数中,创建 Employee 结构体变量。
struct Employee Employees[4];
Employees[4] = {
{25, "Suresh", 25000},
{24, "Tutorial", 28000},
{22, "Gateway", 35000},
{27, "Mike", 20000}
};
C 语言中的结构体数组示例
该程序将声明学生结构体并显示 N 名学生的信息。
#include <stdio.h>
struct Student
{
char Student_Name[50];
int C_Marks;
int DataBase_Marks;
int CPlus_Marks;
int English_Marks;
};
int main()
{
int i;
struct Student Students[4] =
{
{"Suresh", 80, 70, 60, 70},
{"Tutorial", 85, 82, 65, 68},
{"Gateway", 75, 70, 89, 82},
{"Mike", 70, 65, 69, 92}
};
printf(".....Student Details....");
for(i=0; i<4; i++)
{
printf("\n Student Name = %s", Students[i].Student_Name);
printf("\n First Year Marks = %d", Students[i].C_Marks);
printf("\n Second Year Marks = %d", Students[i].DataBase_Marks);
printf("\n First Year Marks = %d", Students[i].CPlus_Marks);
printf("\n Second Year Marks = %d", Students[i].English_Marks);
}
return 0;
}

在这个结构体数组示例中,我们声明了包含不同数据类型成员的学生结构体。
在 main() 函数中,我们创建了结构体数组的学生变量。接下来,我们为结构体成员初始化了相应的值。
在下一行,我们在 for 循环中有一个 For 循环条件。它将控制编译器不超过数组的限制。内部的 printf 语句将打印学生结构体数组中的值。
让我们逐次迭代地探讨这个结构体数组程序
第一次迭代:i = 0 且条件 0 < 4 为真(TRUE),所以
学生姓名 = Students[0].Student_Name = Suresh
C 语言编程分数 = Students[0].C_Marks = 80
数据库分数 = Students[0].DataBase_Marks = 70
C++ 分数 = Students[0].CPlus_Marks = 60
英语分数 = Students[0].English_Marks = 70
i 的值通过 i++ 自增运算符增加了 1。所以 i 变为 1
C 语言结构体数组的第二次迭代
i = 1 且条件 1 < 4 为真(TRUE)
学生姓名 = Students[1].Student_Name = Tutorial
C 语言编程分数 = Students[1].C_Marks = 85
数据库分数 = Students[1].DataBase_Marks = 82
C++ 分数 = Students[1].CPlus_Marks = 65
英语分数 = Students[1].English_Marks = 68
i 的值增加了 1。所以 i 变为 2
第三次迭代
i = 2 且条件 2 < 4 为真(TRUE)
学生姓名 = Students[2].Student_Name = Gateway
C 语言编程分数 = 75
数据库分数 = 70
C++ 分数 = Students[2].CPlus_Marks = 89
英语分数 = Students[2].English_Marks = 82
i 的值增加了 1。所以 i 变为 3
第四次迭代
i = 3,且条件 3 < 4 为真(TRUE),所以,项目是
Mike
70
65
69
92
i 的值通过 i++ 自增运算符增加了 1。所以,i 变为 4,且 i<4 条件为假(Fails)。因此,编译器将退出循环。