枚举

数据类型

数学计算机科学理论中,一个枚举是列出某些有穷序列集的所有成员的程序,或者是一种特定类型对象的计数。这两种类型经常(但不总是)重叠。

枚举是一个被命名的整型常数的集合,枚举在日常生活中很常见,例如“星期”这个词就是一个枚举,星期一、星期二、 星期三、星期四、星期五、星期六、星期日就是这个枚举里面的成员。

通俗来说,枚举就是对一个对象的所有可能取到的值的集合

枚举的定义方式与结构体联合体相似,其形式为:

enum 枚举名{
    标识符①[=整型常数],
    标识符②[=整型常数],
    ...
    标识符N[=整型常数],
}枚举变量;

如果枚举没有初始化,即省掉「=整型常数」时,则从第一个标识符开始,顺次赋给标识符。但当枚举中的某个成员赋值后,其后的成员按依次加的规则确定其值。例如下列枚举说明后, 的值分别为

enum string{x1, x2, x3, x4}x;

当定义改变为:

enum string
{
    x1,
    x2=0,
    x3=50,
    x4,
}x;

注意:

  1. 枚举中每个成员(标识符)结束符是「,」, 不是「;」,最后一个成员可省略「,」。
  2. 初始化时可以赋负数,以后的标识符仍依次加1。
  3. 枚举变量只能取枚举说明结构中的某个标识符常量。

例如:

enum string
{
    x1=5,
    x2,
    x3,
    x4,
};
enum string x=x3;

此时,枚举变量x3实际上是7。