第8章 用户自己建立数据类型.ppt

  1. 1、本文档共60页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

定义共用体类型变量的一般形式为:union共用体名{成员表列}变量表列;例如:unionData{inti;charch;floatf;}a,b,c;unionData{inti;charch;floatf;};unionDataa,b,c;“共用体”与“结构体”的定义形式相似,但它们的含义是不同的。结构体变量所占内存长度是各成员占的内存长度之和,每个成员分别占有其自己的内存单元。而共用体变量所占的内存长度等于最长的成员的长度。8.4.2引用共用体变量的方式只有先定义了共用体变量才能引用它,但应注意,不能引用共用体变量,而只能引用共用体变量中的成员。例如,前面定义了a,b,c为共用体变量,下面的引用方式是正确的:a.ia.cha.f8.4.3共用体类型数据的特点在使用共用体类型数据时要注意以下一些特点:(1)同一个内存段可以用来存放几种不同类型的成员,但在每一瞬时只能存放其中一个成员,而不是同时存放几个。8.4.3共用体类型数据的特点在使用共用体类型数据时要注意以下一些特点:(2)可以对共用体变量初始化,但初始化表中只能有一个常量。8.4.3共用体类型数据的特点在使用共用体类型数据时要注意以下一些特点:(3)共用体变量中起作用的成员是最后一次被赋值的成员,在对共用体变量中的一个成员赋值后,原有变量存储单元中的值就取代。8.4.3共用体类型数据的特点在使用共用体类型数据时要注意以下一些特点:(4)共用体变量的地址和它的各成员的地址都是同一地址。(5)不能对共用体变量名赋值,也不能企图引用变量名来得到一个值。8.4.3共用体类型数据的特点例8.8有若干个人员的数据,其中有学生和教师。学生的数据中包括:姓名、号码、性别、职业、班级。教师的数据包括:姓名、号码、性别、职业、职务。要求用同一个表格来处理。8.5使用枚举类型如果一个变量只有几种可能的值,则可以定义为枚举类型所谓“枚举”就是指把可能的值一一列举出来,变量的值只限于列举出来的值的范围内8.5使用枚举类型声明枚举类型用enum开头。例如:enumWeekday{sun,mon,tue,wed,thu,fri,sat};声明了一个枚举类型enumWeekday然后可以用此类型来定义变量enumWeekdayworkday,weekend;枚举元素枚举变量8.5使用枚举类型workday=mon;正确weekend=sun;正确weekday=monday;不正确说明:(1)C编译对枚举类型的枚举元素按常量处理,故称枚举常量。不要因为它们是标识符(有名字)而把它们看作变量,不能对它们赋值。例如:sun=0;mon=1;错误说明:(2)每一个枚举元素都代表一个整数,C语言编译按定义时的顺序默认它们的值为0,1,2,3,4,5…在上面定义中,sun的值为0,mon的值为1,…sat的值为6如果有赋值语句:workday=mon;相当于workday=1;说明:(2)每一个枚举元素都代表一个整数,C语言编译按定义时的顺序默认它们的值为0,1,2,3,4,5…也可以人为地指定枚举元素的数值,例如:enumWeekday{sun=7,mon=1,tue,wed,thu,fri,sat}workday,week_end;指定枚举常量sun的值为7,mon为1,以后顺序加1,sat为6。说明:(3)枚举元素可以用来作判断比较。例如:if(workday==mon)…if(workdaysun)…枚举元素的比较规则是按其在初始化时指定的整数来进行比较的。如果定义时未人为指定,则按上面的默认规则处理,即第一个枚举元素的值为0,故monsun,satfri例8.9口袋中有红、黄、蓝、白、黑5种颜色的球若干个。每次从口袋中先后取出3个球,问得到3种不同颜色的球的可能取法,输出每种排列的情况。8.6用typedef声明新类型名1.简单地用一个新的类型名代替原有的类型名typedefintInteger;typedeffloatReal;inti,j;floata,b;与Integeri,j;Reala,b;等价8.6用typedef声明新类型名2.命名一个简单的类型名代替复杂的类型表示方

您可能关注的文档

文档评论(0)

187****6278 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档