第十二讲结构体、共用体和枚举类型(C语言).doc_第1页
第十二讲结构体、共用体和枚举类型(C语言).doc_第2页
第十二讲结构体、共用体和枚举类型(C语言).doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第十二讲 结构体、共用体和枚举类型 本讲主要介绍C语言中的三种类型的定义和使用,其中两种是构造类型:结构体类型和共用体类型,一种是C语言的基本类型:枚举类型。要求大家掌握结构体类型、共用体类型和枚举类型的变量的定义,掌握结构体类型和共用体类型变量及其成员的引用等基本操作,理解结构体数组的应用,理解结构体和共用体变量存储形式的不同,了解枚举类型变量的处理方式。 知识要点 结构体类型的定义1. 结构体类型定义的一般形式2. 结构体类型定义中的注意事项 结构体类型变量1. 结构体类型变量定义的三种方法2. 结构体类型变量的初始化3. 对结构体变量中成员的引用4. 对整个结构体变量的引用 结构体数组1. 结构体数组定义的三种方法2. 结构体数组的初始化3. 对结构体数组元素的成员进行引用 共用体1. 共用体类型和共用体变量定义的方式2. 共用体变量与结构体变量的区别3. 共用体变量成员的引用4. 共用体变量作为结构体变量的成员 枚举类型1. 枚举类型和枚举变量定义的一般形式2. 枚举元素的处理 12.1 结构体类型的定义 结构体类型定义的一般形式为: struct 结构体名 类型名1 成员名1; 类型名2 成员名2; 类型名n 成员名n; ;其中,struct是关键字,是结构体类型的标志。结构体名是由用户定义的标识符,它规定了所定义的结构体类型的名称。结构体类型的组成成分称为成员,成员名的命名规则与变量名相同。12.2 结构体类型变量 一、结构体变量的定义 定义结构体类型的变量有三种方法: 1. 先定义结构体类型,再定义变量。注意:定义变量时,struct person必须在一起使用,它的用法与int、char等类型名的用法相同。 2. 定义类型的同时定义变量。 3. 直接定义结构体类型变量,省略类型名。 二、结构体变量的初始化 将结构体变量各成员的初值顺序地放在一对大括号中,并用逗号分隔。对结构体类型变量赋初值时,按每个成员在结构体中的顺序一一对应赋值。 三、结构体变量的引用 对结构体变量的引用可以分为对结构体变量中成员的引用和对整个结构体变量的引用。一般对结构体变量的操作是以成员为单位进行的。 (1) 对结构体变量中成员的引用 引用的一般形式为: 结构体变量名成员名“”是成员运算符,它在所有运算符中优先级最高。 (2) 对整个结构体变量的引用 相同类型的结构体变量之间可以进行整体赋值。 注意:结构体变量只允许整体赋值,其它操作如输入、输出等必须通过引用结构体变量的成员进行相应的操作。12.3 结构体数组 一、结构体数组的定义 定义结构体数组的方法和定义结构体变量的方法一样,只是必须说明其为数组。 定义结构体变量的三种方法都可以用来定义结构体数组。 二、结构体数组的初始化 和一般数组一样,结构体数组也可以进行初始化。 数组每个元素的初值都放在一对大括号中,括号中依次排列元素各成员的初始值。 三、结构体数组的引用 对结构体数组的引用一般是对数组元素的成员进行引用。引用只要遵循对数组元素的引用规则和对结构体变量成员的引用规则即可。12.4 共用体 一、共用体类型及其变量的定义 共用体类型定义的一般形式为: union 共用体名 类型名1 成员名1; 类型名2 成员名2; 类型名n 成员名n; ;其中,union是关键字,是共用体类型的标志。共用体名是由用户定义的标识符,它规定了所定义的共用体类型的名称。共用体类型也由若干成员组成。 共用体类型变量的定义也有三种方法。 1. 先定义共用体类型,再定义变量。 2. 定义类型的同时定义变量。 3. 直接定义共用体类型变量。 二、共用体变量的引用 共用体变量也必须先定义,后使用。不能直接引用共用体变量,只能引用共用体变量的成员。引用的一般形式为: 共用体变量名成员名 共用体变量的每个成员也可以像普通变量一样进行其类型允许的各种操作。但要注意:由于共用体类型采用的是覆盖技术,因此共用体变量中起作用的总是最后一次存放的成员变量的值。 共用体变量可以作为结构体变量的成员,结构体变量也可以作为共用体变量的成员,并且共用体类型也可以定义数组。 注意:不能对共用体变量进行初始化。不能将共用体变量作为函数参数和返回值。12.5 枚举类型 一、枚举类型及其变量的定义 枚举类型定义的一般形式为: enum 枚举名 枚举元素1,枚举元素2,; 其中,enum是关键字,是枚举类型的标志。枚举名是由用户定义的标识符,它规定了所定义的枚举类型的名称。 枚举类型变量的定义有两种方法。 1. 先定义枚举类型,再定义变量。 2. 直接定义枚举变量。 说明: (1)枚举类型中的枚举元素是用户定义的标识符,对程序来说,这些标识符并不自动代表什么含义。(2)在C编译中,将枚举元素作为常量处理,称为枚举常量。因此不能对它们进行赋值。(3)枚举元素是被处理成一个整型常量的,它的值取决于定义时各枚举元素排列的先后顺序。第一个枚举元素的值为0,第二个为1,依次顺序加1。 二、枚举类型变量的基本操作 1. 枚举变量的赋值只能给枚举变量赋枚举常量。不能直接给枚举变量赋整型值,但是可以通过将整型值强制类型转换成枚举类型赋值。 2. 枚举元素的判断比较 3. 枚举变量只能通过赋值语句得到值,不能通过输入语句直接输入数据。也不能使用输出语句直接输出枚举元素,可以通过switch语句将枚举元素以字符串形式输出。 学以致用 1. 定义一个包括年、月、日的结构体变量,当输入年、月、日数据后,计算该日是这一年中的第几天。 2. 从键盘输入10个学生的数据,每个学生的数据包括:学号、姓名、三门课的成绩。要求输出三门课总平均成绩,及最高分学生的数据(包括学号、姓名、三门课成绩、平均分数)。 3. 从键盘输入5个用户的数据,每个用户包括:姓名和电话号码(8位数字)。要求按姓名排序后,输出用户的全部数据。 4. 定义一种类型Stu可以放学生的姓名、学号、英语成绩,其中英语成绩

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论