欢迎来到天天文库
浏览记录
ID:40238646
大小:1.72 MB
页数:88页
时间:2019-07-28
《C语言程序设计(第二版) 刘克成 张凌晓 ch8》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第8章结构体、共用体与枚举类型8.1结构体8.2共用体8.3位段结构8.4枚举类型8.5用typedef定义类型8.6结构体应用举例1本章主要内容本章教学目的:1、掌握结构体类型和共用体类型及其变量的定义2、掌握结构体类型数组的使用3、掌握结构体类型指针4、掌握结构体与函数5、掌握简单链表的应用6、了解位段结构7、掌握枚举类型和用typedef自定义类型28.1结构体38.1.1结构体类型的定义8.1.2结构体类型变量8.1.3结构体类型数组8.1.4结构体类型指针8.1.5结构体与函数8.1.6动态内存分配本章主要内容结构体是一种构造数据类型,它是由若干“成
2、员”组成的。每一个成员可以是一个基本数据类型或者又是一个构造数据类型。因为结构体是一种“构造”而成的数据类型(即自定义数据类型),所以在说明和使用之前必须先定义(构造)它。它的用途是把不同类型的数据组合成一个整体。48.1.1结构体类型的定义定义一个结构体类型的一般形式为:struct结构体名{成员说明表列};其中:(1)struct是定义结构体类型的关键字,结构体名是由程序设计者按C语言标识符命名规则指定的;(2)成员说明表列由若干个成员组成,每个成员都是该结构体的一个组成部分,对每个成员也必须作类型说明。每个成员的说明形式为:类型说明符成员名;成员名的命名
3、应符合C语言标识符的书写规定;(3)最后一个花括号外的分号“;”不能省略。56例如,上面提到的学生信息可用结构体描述为:structstu{intnum;/学号/charname[20];/姓名/charsex;/性别/floatscore;/成绩/charaddr[40];/家庭住址/};在这个结构体定义中,结构体名为stu,该结构体由5个成员组成。第一个成员为num,整型;第二个成员为name,字符数组;第三个成员为sex,字符型;第四个成员为score,浮点型,第五个成员为addr,字符数组。这五个成员分别表示学生的学号、姓名、性别、成绩和家庭住址。结构
4、体类型可以嵌套定义,即一个结构体类型中的某些成员又是其它结构体类型,但是这种嵌套不能包含自身,即不能由自己定义自己。7例:structdate{intyear;/年/intmonth;/月/intday;/日/};structstudent{intnum;/学号/charname[20];/姓名/charsex;/性别/floatscore;/成绩/charaddr[40];/家庭住址/structdatebirthday;/出生日期/};8.1.2结构体类型变量结构体类型变量的定义结构体类型定义之后,即可进行变量声明。声明结构体类型变量,有以下三种方法。(1
5、)先定义结构体类型,再声明结构体变量8例structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];};structstudentstu1,stu2;一般形式:struct结构体名{类型标识符成员名;类型标识符成员名;…………….};struct结构体名变量名表列;例#defineSTUstructstudentSTU{intnum;charname[20];charsex;intage;floatscore;charaddr[30];};STUstu1,stu2;9一般形式
6、:struct结构体名{成员说明表列;}变量名表列;structstudent{intnum;charname[20];charsex;floatscore;charaddr[40];structdatebirthday;}student1,student2;(2)定义结构体类型的同时声明结构体变量10一般形式:struct{成员说明表列;}变量名表列;struct{intnum;charname[20];charsex;floatscore;charaddr[40];structdatebirthday;}student1,student2;(3)直接声明结
7、构体类型变量第三种方法中省去了结构体名,而直接声明结构体变量。这种形式虽然简单,但不能在其它地方使用该类型声明变量。例:struct{intid;floatscore;}a;struct{intid;floatscore;}b;a.id=1000;a.score=33.3;b=a;则程序错误,因a、b不同类型注意:(1)结构体类型与结构体变量是不同的概念。定义一个结构体类型,系统并不分配一段内存单元存放成员说明表列中说明的各数据项成员,只有在声明该结构体变量后,该变量才分配存储单元。(2)结构体变量中的成员,可以单独使用,它的作用与地位相当于普通变量;(3)结
8、构体成员名与程序中变量名可重名,两者不
此文档下载收益归作者所有