欢迎来到天天文库
浏览记录
ID:52269344
大小:515.01 KB
页数:44页
时间:2020-04-03
《《C语言综合实验》2构造数据类型.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C语言综合实验构造数据类型主要内容结构体结构体的定义及引用结构体数组结构体与指针共用体枚举类型类型标识符的自定义结构体与链表1.结构体的定义及引用有时候需要将不同类型的数据组合成一个有机的整体,这些组合在一个整体中的数据是互相联系的。如一个学生的信息包括学号、姓名、性别、年龄、成绩、地址等。numnamesexagescoreaddr08001LiMingM1996.5武汉intnum;charname[20];charsex;intage;floatscore;charaddr[30];应当把它们组织成一个组合项,在一个组合项内包含若干个类型不
2、同(或相同)的数据项。C语言提供了这种数据结构:允许用户将不同类型的数据组合成一个有机的整体,这些数据互相联系;这种数据结构称为结构体(structure)。结构体的定义是指定义相应的数据结构及相应的变量。步骤:①先定义一个结构体类型标识符;②用该标识符去定义相应的变量。structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];};说明:①、struct是关键字,不能省略:表示定义结构体;②、student是用户自己定义的结构体类型标识符,即该结构体名;③、结
3、构体中具体每项的定义,由{和}括起来。C语言中把用户自己定义的数据项称为成员(或称为域),即每个成员也叫结构体中的一个域。结构体类型标识符的定义定义一个结构体类型的一般形式:struct结构体类型标识符{类型标识符1 成员名1;类型标识符2 成员名2;…… ……类型标识符n成员名n;};结构体名成员表列结构体类型标识符的定义1、定义形式:[struct]结构体类型标识符变量名列表;2、定义结构体变量的三种方法:①、先定义结构体类型再定义变量名structstudent{intnum;charname[20];floatscore;};str
4、uctstudentstu1,stu2;结构体类型名结构体变量名08001Zhang9208002Li97stu1stu2在定义了结构体变量后,系统会为之分配内存单元。sizeof(stu1)=2+20+4=26结构体变量的定义②、在定义结构体类型的同时定义变量struct结构体类型标识符{类型标识符1 成员名1;类型标识符2 成员名2;…… ……类型标识符n成员名n;}变量名列表;structstudent{intnum;charname[20];floatscore;}stu1,stu2;③、直接定义结构体类型变量struct{类型标识
5、符1 成员名1;类型标识符2 成员名2;…… ……类型标识符n成员名n;}变量名列表;(不出现结构体类型名)struct{intnum;charname[20];floatscore;}stu1,stu2;3、关于结构体类型的几点说明:①、类型与变量是不同的概念,不要混淆:a、只能对变量赋值、存取或运算,而不能对一个类型赋值、存取或运算;b、在编译时,对类型不分配内存空间,只对变量分配空间。②、只有在定义变量后,才为该变量开辟存储单元。结构体变量所占的内存长度等于每个成员长度之和;structstudent{intnum;charname[
6、20];floatscore;};sizeof(structstudent)=26③、对结构体中的成员(“域”),可以单独使用,它的作用与地位相当于普通变量;④、成员也可以是一个已定义的结构体类型变量:structdate{intyear;intmonth;intday;};structstudent{intnum;charname[20];charsex;structdatebirthday;charaddr[30];};sizeof(student)=?注意:结构体变量中各成员按照结构体类型说明的顺序依次存放在一片连续的内存单元中,但它们的长
7、度不同,不能像访问数组元素那样通过下标访问,而是通过它们的名字(即成员名)访问。⑤、成员也可以是指向本结构体类型的指针变量;structstudent{intnum;charname[20];floatscore;structstudent*next;};⑥、成员名可以与程序中的变量名相同,二者不代表同一对象。在定义结构体变量的同时可以给它的全部或部分成员赋初值,完成初始化。结构体类型名变量名={初值表列};structstudentstu1={10001,“LiMing”,“男”,{1983,7,1},”武汉理工大学”};结构体变量的初始化st
8、ructstudent{intnum;charname[20];charsex;structdate{intyear;intmonth;
此文档下载收益归作者所有