知识点
结构 struct student {
int num; /*学号*/
char name [10]; /*姓名*/
int computer, english,math; /*三门课程成绩*/
double average; /*个人平均成绩*/
};
大括号中以变量定义的形式列出了学生的各信息项,而所有这些内容又被组合在一起,构成了一个名为struct student 的结构数据类型。
结构C语言中一种新的构造数据类型,它能够把有内在联系的不同类型的数据汇聚成一个整体,使它们相互关联;同时,结构又是一个变量的集合,可以按照对基本数据类型的操作方法单独使用其成员变量。结构就是这样一种特殊的构造数据类型。
结构类型定义的一般式:
struct 结构名 {
类型名 结构成员名 1;
类型名 结构成员名 2;
...
类型名 结构成员名 n;
} ;
struct 是定义结构类型的关键字,在struct 之后,自行命名一个结构名,它必须是一个合法的c标识符,struct与结构名两者合起来共同组成结构类型名,如 struct student。大括号内的内容是结构所包括的结构称号,也叫结构分量,结构成员可以有多个。这样,大括号中定义的成员信息被聚合为一个整体并形成了一个新的数据类型。
关键字struct和它后面的结构名一起组成一个新的数据类型名。结构的定义以分号结束,这是因为C语言中把结构的定义看做一条语句。
构成结构的每一个分项(即结构成员或结构分量)可以用前面章节中学习过的任意数据类型来定义,由于结构中各成员的类型可以不同,与数组相比,它提供了一种便利的手段,将不同类型的相关信息组织在一起。
又如,平面上的任意一点都可以用x坐标和y坐标来共同确定。
struct point {
double x;
double y;
};
定义了一个名为struct point的结构数据类型,它由数据类型皆为实型的两个成员x、y组成。虽然x、y的类型相同,也可以用数组的方式表示,但采用结构来描述其整体性更强,增加了程序的可读性,使程序更加清晰。
学号 |
姓名 |
通信地址 |
计算机 |
英语 |
数学 |
平均成绩 |
|||
城市 |
街道 |
门牌号 |
邮编 |
||||||
学生信息嵌套结构
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 adress 又包含了4个成员,即一个结构的成员被定义成另一个结构类型。结构类型的嵌套定义使成员数据被进一步细分,这有利于对数据的深入分析与处理。
在定义嵌套的结构类型时,必须先定义成员的结构类型,再定义主结构类型。
心得:
学习也已经到了尾期了 ,在这一学期的用心学习中,我的受益匪浅。原本觉得学习C语言是一件特别不可能完成的事,但是 在老师的用心教诲和我们助教的耐心辅导下,我看到了希望。很期待下学期我能够学到更多的东西,我会继续努力。