定义枚举类型的时候,定义了枚举常量列表,例如:
enum test
{
, b, c
};
此时,枚举常量列表的值有如下的规则:
(1) 常量列表中,第一个常量的值默认为0;
(2) 从第二个常量开始,它的值是前一个常量的值增加1;
所以,对于上面的例子,常量a的值默认为0,常量b的值是常量a的值增加1,所以为1;常量c的值是常量b的值增加1,所以为2。
注意:我们可以在定义常量列表的时候,给常量设置数值。程序测试例子如下:
程序运行结果如下:
可以看到,我们定义了枚举类型如下:
enum test
{
a = 5, b, c, e = 18, f
};
其中,给枚举常量列表中的常量设置了数值,例如 a = 5,就是给常量a设置了5这个数值。
那么,常量b是前一个常量a的值增加1,所以,常量b的值是6;同理,常量c的值是前一个常量b的值增加1,所以,常量c为7。
而且,我们又可以随时给某个常量设置数值,所以,给常量e设置了数值。那么,我们给常量e设置了18数值,所以,常量e的值不是其前一个常量c数值增加1,而是我们手动设置的数值18。同时,常量f没有手动设置数值,所以,它的值是常量e的数值增加1,所以,常量f的值为19。
所以,我们可以总结:
(1) 可以给枚举常量列表中的常量设置一个数值;
(2) 如果没有给枚举常量设置数值,那么,它的值是前一个枚举常量值增加1。如果第一个枚举常量没有设置数值,那么,它默认数值为0值。
在定义枚举类型的时候,可以给枚举常量设置“负值”数据,例如:
enum test
{
= -3, b, c, e = 18, f
};
此时,给常量a设置-3这个数值,那么,常量b是常量a的值增加1,所以,常量b的值为-2,同理,常量c的值是常量b的值增加1,所以,常量c的值为-1。
韦凯峰