- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
数据类型通常是基本数据类型,也可以是结构体类型、共用体类型等其它类型。成员名是用户取的标识符,用来标识所包含的成员名称。例如:unionexample{chara[100];//该成员占用100个存储单元intb[100];//该成员占用400个存储单元floatc[100];//该成员占用400个存储单元}array;//共用体变量array占用400个存储单元注意:共用体变量中每个成员所占的存储单元是连续的,而且都是从分配的连续存储单元的第一个存储单元开始存放数据,所以对共用体变量来说所有成员的首地址是相同的。7.7.2共用体变量的定义与引用1、共用体变量的定义定义了某个共用体后,就可以使用它来定义相应共用体类型的变量、数组等。方法如下:(1)先定义共用体,然后定义变量、数组。(2)同时定义共用体和变量、数组。(3)定义无名称的共用体的同时定义变量、数组。(1)unionexam{inti;charch;};unionexama,m[3];(2)unionexam{inti;charch;}a,m[3];(3)union{inti;charch;}a,m[3];由于共用体变量中的成员不能同时起作用,因此对共用体变量、数组的定义不能赋初值,只能在程序中对其成员进行赋值。2、共用体变量的引用与结构体变量的引用方式类似:先定义,后使用;只能引用具体成员,而不能直接引用变量。例如,前面已定义了共用体变量a,下面的引用方式是正确的:a.i(引用共用体变量中的整型变量i)a.ch(引用共用体变量中的字符型变量ch)不能只引用共用体变量,如:printf(“%d”,a);是错误的。这是因为a的存储区有2种类型,分别占不同长度的存储空间,仅写变量名a,难以让系统确定究竟是要输出哪一个成员。应该写成printf(“%d”,a.i)或printf(“%c”,a.ch)。【例7-18】写出下列程序的输出结果。main(){unionzj{inta;charch[2];}au;au.a=298;printf(%d,%d\n,au.ch[0],au.ch[1]);}运行结果为:42,17.8枚举类型实际应用中,有些变量的取值被限制在特定的范围内。例如,一年只有特定的十二个月,一个星期只有特定的七天等等。对于此类变量,C语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。但要说明的是,枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型。1、枚举类型的定义与枚举变量说明1)枚举类型定义的一般形式为:enum枚举名{枚举值表};在枚举值表中应罗列出所有可用值。这些值也称为枚举元素。例如:enumweekday{monday,,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday};该枚举名为weekday,枚举值共有7个,即一周中的七天。凡被说明为weekday类型变量的取值只能是七天中的某一天。(2)枚举变量的说明如同结构体和联合体一样,枚举变量也可用不同的方式说明,即先定义后说明,同时定义说明或直接说明。设有变量a,b,c被说明为上述的weekday,可采用下述任一种方式:变量说明方式一:enumweekday{sun,mou,tue,wed,thu,fri,sat};enumweekdaya,b,c;变量说明方式二:enumweekday{sun,mou,tue,wed,thu,fri,sat}a,b,c;变量说明方式三:enum{sun,mou,tue,wed,thu,fri,sat}a,b,c;2、枚举类型的变量赋值和使用枚举类型在使用中有以下规定:枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。例如对枚举weekday的元素再作以下赋值:sun=5;mon=2;sun=mon;都是错误的。枚举元素本身由系统定义了一个表示序号的数值,从0开始顺序定义为0,1,2…。如在weekday中,sun值为0,mon值为1,…,sat值为6。【例7-19】枚举类型赋值。main(){enumweekday{sun,mon,tue,wed,thu,fri,sat}a,b,c;a=sun;b=mon;c=tue;
原创力文档


文档评论(0)