1.定义
结构是一种构造类型,它是由若干“成员”组成的。每一个成员都可以是一个基本数据类型或者有事一个构造类型。结构既是一种“构造”而成的数据类型,那么在说明和使用之前必须先定义它,也就是构造它。如同在说明和调用函数之前要先定义函数一样。
定义一个结构的一般形式为:
struct 结构名{ 类型表列 成员表列; }struct stu
表示结构变量成员的一般形式是: 结构变量名.成员名 例如: stu.num 即第一个人的学号 stu.sex 即第二个人的性别 如果成员本身又是一个结构则必须逐级找到最低级的成员才能使用。例如: stu.birthday.month表示结构变量成员的一般形式是: 结构变量名.成员名 例如: stu.num 即第一个人的学号 stu.sex 即第二个人的性别 如果成员本身又是一个结构则必须逐级找到最低级的成员才能使用。例如: stu.birthday.month例如: stu.num 即第一个人的学号 stu.sex 即第二个人的性别如果成员本身又是一个结构则必须逐级找到最低级的成员才能使用。例如: stu.birthday.month{
int num;
char name[20];
char sex;
float score;
};
定义方法,先声明后定义。
struct stu stu1,stu2;
2.结构变量的表现形式
在程序中使用结构变量时,往往不把它作为一个整体来使用。在ANSI C中除了允许具有相同类型的结构变量相互赋值以外,一般对结构变量的使用,包括赋值、输入、输出、运算等都是通过结构变量的成员来实现的。
3.结构体数组
数组的元素也可以是结构类型的。因此可以构成结构型数组。结构数组的每一个元素都是具有相同结构类型的下标结构变量。
方法和结构变量相似,只需说明它为数组类型即可。例如:
struct stu{
int num;
char *name;
char sex;
float score;}boy[5]; //stu可以不写,boy[5]也可以另起一行定义。
4.结构体指针
struct 结构体名称 *指针变量名
访问方法:
1.结构体变量名.成员名(stu.age)
2.指针体变量名.成员名((*stu).age)
3.指针变量名->成员名(*stu->age)