学习目标:
理解结构体数组的概念
掌握结构体数组的定义和初始化
掌握结构体数组的应用
重点:
结构体数组的定义和使用
结构体数组的输入输出
难点:
学会结构体数组成员的使用
一个结构体变量可存放一组有关联的数据(如一个学生的学号、姓名、成绩等数据)。如果有10个学生的数据需要参加运算,则需用到结构体数组。
一、结构体数组
1. 定义:具有相同结构的结构体也可以组成数组
定义结构体数组:3种形式
形式一:间接定义
struct student
{int num;
char name[20];
char sex;
int age;
};
struct student stu[2];
形式二:直接定义
struct student
{int num;
char name[20];
char sex;
int age;
}stu[2];
形式三:直接定义
struct
{int num;
char name[20];
char sex;
int age;
}stu[2];
2. 结构体数组初始化
struct 结构名结构数组名[数组长度]={初始数据};
1)定义数组时初始化:
struct student
{int num;
char name[20];
char sex;
int age;
};
struct student stu[3]={{100,“Wang Lin”,‘M’,20},{101,“Li Gang”,‘M’,19},{110,“Liu Yan”,‘F’,19}};
说明:
1)按顺序定义时:内层括号可以省略
2)全部初始化时维数可省
3. 结构体数组成员的访问
通过数组来访问某个元素的成员时,可使用如下方法:
结构数组名[下标].结构成员
下列两种方式也是可以的,但是由于可读性较差,所以很少使用,尤其是最后一种。
( 结构数组名+下标 ) -> 结构成员
( *( 结构数组名+下标 ) ).结构成员
二、结构体数组应用
1. 例11.1 结构体数组成员的使用
struct student
{int num;
char name[20];
char sex;
int age;
};
struct student stu[ ]={{100,“Wang Lin”,‘M’,20}, ……};
stu[0].age++;
strcpy(stu[0].name, “ ZhaoDa”);
2. 例11.2 统计候选人选票
有3个候选人,每个选民只能投票选一人,要求编写一个统计选票的程序,先后输入被选人的名字,最后输出各人得票结果。

