教学要点:
结构体类型变量的初始化必须与定义同步进行。
结构体变量成员的引用规则:
结构体变量名.成员名 // “ . ”成员运算符
typedef 用于为固有数据类型或自定义数据类型定义别名,别名一般是用大写字母。
若:typedef struct Student
{
int number;
char name[20];
float chinese,english,math;
} STU;
或:struct Student
{
int number;
char name[20];
float chinese,english,math;
};
typedef struct Student STU;
则:
STU LM,ML; 与 struct Student LM,ML; 等效。
结构体数组的定义
例:struct Student
{
int number;
char name[20];
float chinese;
float english;
float math;
};
struct Student stu[30]; //struct 结构体名 数组名列表;
完成上述定义后,结构体数组变量 stu 具有与“Student”相同的结构;
同时意味着有 30 个与“Student”结构相同的结构体类型元素(变量序列)存在。
结构体数组在定义的同时可以初始化。如:
struct Student stu[30]=
{
{101,"LiMing",67,85,56},
{102,"MaLing",34,75,66},
{103,"DongQi",73,84,69},
......
};
结构体数组元素的成员举例:
stu[1].number、stu[3].name、stu[5].math ......
结构体变量作为函数的参数
若已有定义 typedef struct Student Stu;
Stu LM,stu[30];
用作实参时,可以直接书写结构体变量名,如:
output(LM);
input(stu,N); //涉及数组,要提供数组长度值
用作形参时,要加入结构体类型说明,如:
void output(Stu LM)
void input(Stu stu1[],int length)
//涉及数组,数组名后要加[]