枚举

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

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

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

枚举的定义方式与结构体和联合体相似，其形式为：
enum 枚举名{
    标识符①[=整型常数],
    标识符②[=整型常数],
    ...
    标识符N[=整型常数],
}枚举变量;

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

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

当定义改变为:
enum string
{
    x1,
    x2=0,
    x3=50,
    x4,
}x;

则

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

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

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

数据结构