结构体数组

数组的元素也可以是结构类型的。因此可以构成结构型数组。结构数组的每一个元素都是具有相同结构类型的下标结构变量。在实际应用中,经常用结构数组来表示具有相同数据结构的一个群体。如一个班的学生成绩,一个公司员工的工资表等。方法和结构变量相似,只需说明它为数组类型即可。

数组的元素也可以是结构类型的

例如:

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               湖南衡阳