数组的元素也可以是结构类型的
结构体数组
数组的元素也可以是结构类型的。因此可以构成结构型数组。结构数组的每一个元素都是具有相同结构类型的下标结构变量。在实际应用中,经常用结构数组来表示具有相同数据结构的一个群体。如一个班的学生成绩,一个公司员工的工资表等。方法和结构变量相似,只需说明它为数组类型即可。例如:
struct stu{ /*定义结构*/
char num[6];
char name[10];
char sex;
double score;
}stu1[40];
其中数组stu1中的每个数组元素都具有struct stu的结构形式。对结构数组可以作初始化赋值,也可以逐个对每个数组元素赋值。
【例5-16】建立个人通讯录
分析:程序中定义了一个结构memu,它的成员name、phone和Address分别用来表示姓名、电话号码和地址。定义结构体数组,在循环中逐个输入个人通讯信息,最后输出整个个人通讯录。
#include"stdio.h"
#define N 2
int main()
{
struct memu{
char name[20];
char phone[11];
char Address[50];
}person[N];
int i;
for(i=0;i<N;i++)
{
printf("input name:\n");
gets(person[i].name);
printf("input phone:\n");
gets(person[i].phone);
printf("input Address:\n");
gets(person[i].Address);
}
printf("name\t\tphone\t\tAddress\n");
for(i=0;i<N;i++)
printf("%s\t\t%s\t\t%s\n",person[i].name,person[i].phone,person[i].Address);
return 0;
}
程序运行结果:
input name:
gaoyu↙
input phone:
13787690987↙
input Address:
湖南益阳↙
input name:
chenjie↙
input phone:
13898760987↙
input Address:
湖南衡阳↙
name phone Address
gaoyu 13787690987 湖南益阳
chenjie 13898760987 湖南衡阳