- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 构造数据类型 第5章 构造数据类型 5.1 枚举类型 1. 枚举类型的定义: “枚举”是指将变量所有可能的取值一一列举出来,变量的取值只限于列举出来的常量。 枚举类型的声明的一般形式如下 : 枚举类型名以及枚举常量为标识符,遵循标识符的取名规则。 在定义一个枚举类型时,定义了多个常量,供枚举类型变量取值,称此常量为枚举常量。当没给各枚举常量指定值时,其值依次默认为0、1、2、…;在定义枚举类型时,也可使用赋值号另行指定枚举常量的值。 5.1 枚举类型 枚举类型的定义: 例1: enum weekday { SUN, MON, TUE, WED, THU, FRI, SAT }; 定义了7个枚举常量以及枚举类型weekday。枚举常量具有默认的整数与之对应:SUN的值为0、MON的值为1、TUE为2、…、SAT为6。 例2: enum city{ Beijing,Shanghai,Tianjin=5,Chongqing}; 枚举常量Beijing的值为0,Shanghai的值为1,Tianjin的值指定为5。对于指定值后面的没有指定值的枚举常量,编译器会将前一个常量值加1(下一个整数)赋给它,所以Chongqing的值为6。 5.1 枚举类型 枚举类型的定义说明: 枚举类型定义了以后就可以使用枚举常量、使用用枚举类型来定义变量,定义枚举变量的方法与定义其它变量的方法一样。 例如: enum city city1, city2; city city1, city2; 用两种方法定义了city1、city2两个枚举类型的变量名。 枚举类型变量也可以在定义枚举类型的同时定义 例如: enum city{ Beijing,Shanghai,Tianjin=5,Chongqing} city1, city2; 在定义枚举类型的同时定义枚举类型变量可以省略枚举类型名 例如: enum { Beijing,Shanghai,Tianjin=5,Chongqing} city1, city2; 在定义变量时,可以顺便给出初值,若不给初值,默认初值为随机的无意义的数。 5.1 枚举类型 枚举类型的使用: 用枚举类型建立枚举变量后就可以对枚举变量实施赋值以及进行其它运算了,对枚举变量进行赋值,其值要求为同一枚举类型。否则,在编译时出错。 例如: weekday d1,d2,d3,d4; d1=SUN; d2=6; //错误 d3=Shanghai; //错误 其中对d2所赋之值是整数6,不是枚举常量;可以采用将一个整型值强制转换成同类型的枚举常量赋给枚举变量: 枚举常量、枚举类型的变量可进行算术运算、关系运算。 对枚举类型实施算术、关系运算时,枚举值转换成整型值参加运算,结果为整型值。所以,如果要将结果赋给枚举变量,还要将结果转换成枚举值。 例如: d1=d1+2; //是错误的,因为结果为int型。 需要将它强制转换成枚举型: d1=(weekday)(d1+2); 5.1 枚举类型 枚举类型的使用: 枚举常量、枚举类型的变量可直接进行各种形式的关系运算。 例如: if(city1==3) ; if(city2=Beijing); if(Shanghai==1); if(city1SUN); 枚举类型变量不能直接进行输入 例如: cind1; //错误 5.1 枚举类型 【例5-1】输入城市代号,输出城市名称。 5.1 枚举类型 5.2 数组 数组: 数组是一组在内存中依次连续存放的、具有同一类型的数据变量所组成的集合体。其中的每个变量称为数组元素,它们属于同一种数据类型,数组元素用数组名与带方括号的数组下标一起标识。数组可以是一维的,也可以是多维的。 特点: 若干个同类型的数据元素,并且各个数据元素之间存在某种次序关系。这类数据有一个共同的特点:它们有若干个同类型的数据元素,并且各个数据元素之间存在某种次序关系。 5.2.1 一维数组定义与使用 一维数组定义的一般形式为: 说明: 数组元素的类型可以是void型以外的任何一种基本数据类型,也可以是已经定义过的构造数据类型; 数组名是用户自定义的标识符,用来表示数组的名称,代表数组元素
文档评论(0)