《复杂数据类型》PPT课件.ppt
《《复杂数据类型》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《复杂数据类型》PPT课件.ppt(33页珍藏版)》请在三一办公上搜索。
1、第7章 复杂数据类型,7.1 结构体7.2 联合体7.3 枚举类型7.4 复杂数据类型应用综合举例,7.1 结构体,在实际问题中,一组数据往往具有不同的数据类型。例如,在学生登记表中,姓名应为字符型;学号可为整型或字符型;年龄应为整型;性别应为字符型;成绩可为整型或实型。显然不能用一个数组来存放这一组数据。因为数组中各元素的类型和长度都必须一致,以便于编译系统处理。“结构体”是一种构造类型,它是由若干“成员”组成的。每一个成员可以是一个基本数据类型或者又是一个构造类型。,结构体类型的定义,在学生登记表中,每个学生的记录都是由编号,姓名,性别和工资等数据项组成,这些数据项描述了一个员工的几个方面
2、的信息。如果分开用独立的变量表示,很难看出这些数据有什么联系,处理起来也不方便。C语言提供了结构体数据类型,将不同类型的数据组织成一个整体。,7.1.1 结构体类型的定义,定义一个结构体的一般形式为:struct 结构体名 成员列表;;struct是关键字,表示一个结构体类型,成员列表由若干个成员组成,每个成员都是该结构体的一个组成部分。对每个成员也必须作类型说明,其形式为:类型说明符 成员名;成员名的命名应符合标识符的书写规定。应注意在括号后的分号是不可少的。,结构体变量的定义和引用,定义一个结构体变量有以下三种方法:1.先定义结构体,再说明结构体变量。如:struct workerint
3、num;char name20;char sex;float wage;struct worker person1,person2;,7.1.2 结构体变量的定义和引用,关键字struct说明该变量是结构体类型,而worker指定变量为某一特定的结构体类型。说明了结构体变量后,系统就会为每个结构体变量分配一段连续的内存空间,7.1.2 结构体变量的定义和引用,2.在定义结构体类型的同时说明结构体变量。例如:struct workerint num;char name20;char sex;float wage;person1,person2;,7.1.2 结构体变量的定义和引用,3.直接说明结
4、构体变量。例如:structint num;char name20;char sex;float wage;person1,person2;,7.1.2 结构体变量的定义和引用,在结构体类型中,成员也可以是一个结构体,即构成了嵌套的结构体。如:,struct dateint month;int day;int year;structint num;char name20;char sex;struct date birthday;float wage;person1,person2;,7.1.2 结构体变量的定义和引用,引用结构体变量的成员可以通过成员运算符“.”来表示。结构体变量名.成员名
5、例如:person1.num 即第一个人的学号person2.sex 即第二个人的性别 person1.birthday.month 即第一个人出生的月份,7.1.2 结构体变量的定义和引用,定义一个指向结构体变量person1的指针:struct worker*p1;p1=要引用指针指向的结构体成员,可以这样来表示:指针变量名-结构体成员例如:用p1-num,p1-name,p1-sex等来引用结构体中的成员。,7.1.3 结构体变量的赋值,结构体变量的赋值就是给各成员赋值,可直接通过赋值语句来完成,如:person1.num=28536;strcpy(person1.name,“Liu X
6、ing);结构体变量的赋值也可以通过对成员的输入语句来实现,如:scanf(%c%f,7.1.4 简化结构体类型名,struct 结构体类型名 结构体变量名定义结构体变量时,不能只指定为“struct”而不指定结构体名,必须用“struct 结构体类型名”两个符号一起来表示一个结构体类型。用宏定义简化结构体类型名的方法如下:#define 宏名 struct 结构体类型名 宏名结构体成员列表;宏名 结构体变量名;,7.1.4 简化结构体类型名,还可以通过typedef命令来简化结构体类型名。typedef命令是定义新的类型名来代替已有的类型名。如:typedef int INTEGER;该语句
7、指定用INTEGER表示int类型 用typedef定义一个结构体类型的方法如下:typedef structint num;char name20;char sex;float wage;WKER;WKER person1,person2;,7.1.5 结构体数组,一个结构体类型的变量也可以作为一个数组的元素,因此可以构成结构体型数组。struct workerint num;char*name;char sex;float wage;person5;定义了一个结构体数组person,共有5个元素,person0person4。每个数组元素都具有struct worker的结构形式。,7.1
8、.5 结构体数组,struct workerint num;char*name;char sex;float wage;person5=28535,Li ping,M,2500,28536,Liu Xing,M,2300,28537,He fang,F,2360,28538,Cheng ling,F,2680,28539,Wang ming,M,2400;,7.2 联合体,在实际问题中有很多这样的例子。例如在学校的学生信息中填写以下表格:学 号 姓 名课 程 成 绩对于“成绩”一项,有的课程用分数表示,有的课程用等级A,B,C,D来表示。如果有分数表示成绩,可用一个整型变量,但如果用等级A,B
9、,C,D来表示,就只能用字符类型的变量。要求把这两种类型不同的数据都填入“成绩”这个变量中,就必须把“成绩”定义为包含整型和字符型这两种类型的“联合体”。在结构体中各成员有各自的内存空间,一个结构体变量的总长度是各成员长度之和。而在“联合体”中,各成员共享一段内存空间,一个联合体变量的长度等于各成员中最长的长度。,7.2.1 联合体类型的定义,定义一个联合体类型的一般形式为:union 联合体名 成员表;成员表中含有若干成员,成员的一般形式为:类型说明符 成员名,7.2.1 联合体类型的定义,例如:union resultInt score;char level;定义了一个名为result的联
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 复杂数据类型 复杂 数据类型 PPT 课件
链接地址:https://www.31ppt.com/p-5488287.html