结构体和数据结构--枚举数据类型

        枚举(Enumeration)即“一一列举”之意,当某些量仅由有限个数据值组成时,通常用枚举类型来表示。枚举类型(Enumerated Date Type)描述的是一组整型值的集合,需要用关键字enum来定义。例如:

enum  response{no,yes,none};

enum  response answer;

        在上面的第一句声明了名为response的枚举类型,它的可能取值为:no,yes或none。这种定义形式和定义结构体模板很相似。

        第二句定义了一个response枚举型变量answer。

        在枚举类型声明语句中,花括号{和}内的标识符都是整型常量,称为枚举常量。除非特别指定,一般情况下第1个枚举常量的值为0,第2个枚举常量的值为1,第3个枚举常量的值为2,以后依次递增1。使用枚举类型的目的是提高程序的可读性。例如本例中使用no、yes、none比使用0、1、2的程序可读性更好。

        可以用no、yes 或none中的任意一个值给变量answer赋值。例如:

       answer = no;

变量answer还可以用在条件语句中,例如:

if(answer == yes)

{

        //statement(s);
}

        在上面的枚举类型声明语句中,response被称为枚举标签(Enumeration Tag),当枚举类型和枚举变量放在一起定义时,枚举标签可省略不写。

例如:enum { no,yes,none} answer;

也可定义枚举型数组。

例如:enum  response answers[10];

C语言还允许在枚举类型定义时明确地指定每一个枚举常量地值

例如:enum response {no = -1,yes = 1,none =1 };

若要给response 添加其他可能取值,在其后的花括号内直接增加新的数值即可。

例如:enum response { no = -1,yes = 1,none = 0 ,unsure = 2};

其它常见的例子还有:

enum response { JAN = 1,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC};

这里,第一个枚举常量值被明确的设置为1,以下的常量依次递增1.

再如:enum week{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday};

        注意,虽然枚举标签后面花括号内的标识符代表枚举类型变量的可能取值,但其值是整型常量,不是字符串,因此只能作为整型值而不能作为字符串来使用。

例如:answer = yes;

        printf(“%d”,answer);

上面这样写是正确的,而下面的语句则是错误的,不能达到输出字符串“yes”的目的。

printf(“%s”,answer);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值