枚举
定义
在数学和计算机科学理论中,枚举经常是一种特定类型对象的计数。一个被命名的整型常数的集合。
在大多数高级语言中,枚举是一种基本数据类型,可以让数据更简洁易读。
“此类繁多,不能枚举”——清李渔《闲情偶寄-词曲上-结构》
Example
不用枚举
#define MON 1
#define TUE 2
#define WED 3
#define THU 4
#define FRI 5
#define SAT 6
#define SUN 7
代码量会很多,很复杂。
使用枚举
enum DAY
{
MON=1, TUE, WED, THU, FRI, SAT, SUN
};
更简洁;第一个枚举成员的默认值为整型的 0,后续枚举成员的值在前一个成员上加 1。我们在这个实例中把第一个枚举成员的值定义为 1,第二个就为 2,以此类推。
注意事项
- 枚举是常量,不是变量。不能在程序中使用赋值语句对其进行赋值。例如sun=5;mon=2;sun=mon;都是错误的。
- 枚举元素本身由系统定义了一个表示序号的数值,从0开始顺序定义为0,1,2,3…
- 枚举元素不是字符常量也不是字符串常量,使用时不需要加单,双引号。
枚举类型和数值计算
随着计算机的不断普及,程序不仅仅只用于数值计算,更广泛的用于处理非数值数据。比如性别,月份,星期,颜色,单位
名等等。都不是数值数据。在枚举出现之前,一般使用一个数值来代表某一状态,这种方法不直观,易读性差。
枚举方法则是在程序中使用自然语言中有相应含义的单词来代表某一状态,提高程序的可读性,更易于理解。事先考虑到某
一变量可能取的值,尽量使用自然语言中含义清晰的单词来表示每一个值。美剧方法定义的类型称为枚举类型。