作业12总结
知识点总结:
结构的定义
struct student {
int num; /*学号*/
char name[10]; /*姓名*/
int computer, english, math; /*三门课程成绩*/
double average; /*个人平均成绩*/
};
大括号中以变量定义的形式列出了学生的个信息项,而所有这些内容又被组合在一起,构成了一个名为struct student的结构数据类型。
如果使用前面学过的数据类型来表示学生信息,由于学生信息中各项内容的数据类型有所不同,因此,需要为每一项内容分别定义一个变量或数组。当要访问某个学生的信息时,只能分别访问这些分离的变量或数组。这会给操作带来很多不便之处。更重要的是,这几项内容同属于某个学生,它们之间是有内在联系的,为每一项内容分别定义变量或数组的方法割裂了他们之间的关联关系。
嵌套的定义
struct address{ /*定义地址结构*/
char city[10];
char street[20];
int code;
int zip;
};
struct nest_student{
int num;
char name[10];
struct address addr; /*定义通信地址成员*/
int computer, english, math;
double average;
};
结构类型struct nest_student的成员变量addr被定义成结构类型struct address,而struct address又包含了4个成员,即一个结构的成员被定义成另一个结构类型。结构类型的嵌套定义使成员数据被进一步细分,这有利于对数据的深入分析与处理。
结构变量的定义
struct student s1, max;
定义了结构变量s1、max,其数据类型都为struct student。
1、单独定义
单独定义是指先定义一个结构类型,再定义这种结构类型的变量。
2、混合定义
混合定义是指在定义结构类型的同时定义结构变量。
一般形式为:
struct 结构名{
类型名 结构成员名1;
类型名 结构成员名2;
...
类型名 结构成员名n;
}结构变量名表;
3、无类型名定义
无类型名定义是指在定义结构变量时省略结构名。
这种方式采用如下形式定义结构类型并同宿舍定义结构变量:
struct{
类型名 结构成员名1;
类型名 结构成员名2;
...
类型名 结构成员名n;
}结构变量名表;