c语言中枚举常量的用法,第48课-C语言中的枚举-枚举的声明和使用-枚举常量-枚举值...

利用枚举,可以定义一个新的整数类型,该类型变量的值域是我们制定的几个可能的值。

例如定义一个星期的枚举Weekday,定义枚举使用关键字enum

enum Weekday

{

Monday,

Tuesday,

Wednesday,

Thursday,

Friday,

Saturday,

Sunday

}

上面语句是定义一个新的类型,而不是变量,也就是这个Weekday是和int float 这些是一样的,它也是一个类型来的。

大括号里面的值叫做枚举器或者枚举常量,其数量可任意。每个枚举器都用我们赋予的唯一名称来指定。

这些枚举常量,是对应一个整数,默认是从0开始,后面的逐渐递增1

所以上面的Monday其实就是0,然后Tuesday就是1,然后Sunday就是6.

有了这个类型Weekday,我们就可以使用它来创建变量了。类似int double等

enum Weekday  toady = Tuesday;

注意前面的enum,还是必须的

上面的today其实也就是整数中的1

还可以在声明枚举的时候就定义变量。

enum Weekday

{

Monday,

Tuesday,

Wednesday,

Thursday,

Friday,

Saturday,

Sunday

} today ,yesterday,tomorrow;

上面只是声明了三个变量,并没有初始化它们;

enum Weekday

{

Monday,

Tuesday,

Wednesday,

Thursday,

Friday,

Saturday,

Sunday

} today  = Tuesday , yesterday , tomorrow = Wednesday + 2;

还可以声明的时候初始化,初始化的时候还可以进行算术运算。

注意,在进行运算或者赋值的时候,要确保值是有效的

比如加入today = Sunday +1;或者 yesterday = 7;

这些都是超过了枚举的范围了。

上面的七个枚举常量(枚举器),都有对应的整数,这个整数称为枚举值。

枚举常量要求唯一的。比如不能有两个Monday,但是枚举常量对应的枚举值(整数)却没有要求唯一的。不过呢,除非特殊用法,否则一般还是也是唯一比较好。

枚举常量的值,可以不从0开始。比如

enum Weekday

{

Monday = 1,

Tuesday,

Wednesday,

Thursday,

Friday,

Saturday,

Sunday

} ;

这样的话,那么后面的Tuesday就是2了,然后Sunday就是7,事实上,我们可以任意给这些值赋值的

enum Weekday

{

Monday = 1,

Tuesday=6,

Wednesday,

Thursday=123,

Friday=5,

Saturday,

Sunday=9

} ;

上面,除了Wednesday和Saturday 都指定了值,这要的话,这两个没指定的值,会根据前一个值,自动加+1

这样的话,Saturday 就是6 ,Wednesday就是7. 所以Tuesday和Saturday都是6,所以枚举常量的值是可以重复的。

大家思考一下?如果Monday没有指定,那Monday是多少?

平常使用大家没必要这样。//定义一个枚举类型

enum Weekday

{

Monday,

Tuesday,

Wednesday,

Thursday,

Friday,

Saturday,

Sunday

};

//使用这个枚举

enum Weekday today = Monday;

enum Weekday tomorrow = 1;

//不能超过这个枚举常量的有效范围

enum Weekday t2 = 7;

//枚举本质上也是整数,只不过是人为定义好的有意义的整数

enum Weekday2

{

Monday,//第一个枚举器 如果没指定 就是0

Tuesday=4,

Wednesday=4,

Thursday=3,

Friday,

Saturday,

Sunday

} today = 1, yesterday=Sunday-1, tomorrow;//定义枚举类型的时候 马上去声明了三个变量

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值