精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
为枚举类型,怎么只有一个值?
enum color{red,yellow,green}
这个定义的不是有三个值吗?
3个可选的值,但是实际的对象只能使用一个啊
枚举对象就像一个整数,他的数值是确定的,不可能是几个的。
注1、enum 关键字用于声明枚举,即一种由一组称为枚举数列表的命名常量组成的独特类型。命名常量比如是red,列表就是整个{}包含的范围。精通数学的朋友好理解枚举,数学里有往往有值集合概念,比如(1,2,3),这个和枚举类似的概念。这类集合里往往包含有限个数的值,在编程环境下,把这个值进行命名,就变成了命名常量,进而组成了枚举。如果不懂数学,就用效果来理解。比如有限集情况:星期和颜色等等。下面是星期的枚举定义:
enum Days {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri};根据上面定义,假定周六的整数值是1,周五是7。
注2、=1这类指定数值情况,可以出现多个。比如 enum Days {Sat=1, Sun, Mon, Tue=6, Wed, Thu, Fri};则Fri的整数值就是9了。
注3、如果理解了宏,也容易理解枚举。枚举也有代表和替换的意思,这和宏类似。
注4、枚举的目的就是让写的代码好理解,如果用直接的整数值表示星期几,肯定不好理解,用个字符串表示,就好理解了。这象用IP记主机不好记,用域名就好记一个道理。
注5、从 enum 类型到整型的转换需要用显式类型转换来完成。 例如,下面的语句使用强制转换(从 enum 转换为 int)将枚举数 Sun 赋值给一个 int 类型的变量:
int x = (int)Days.Sun;