列舉

数据类型

數學電腦科學理論中,一個集合列舉是列出某些有窮序列集的所有成員的程式,或者是一種特定類型對象的計數。這兩種類型經常(但不總是)重疊。

列舉是一個被命名的整型常數的集合,列舉在日常生活中很常見,例如「星期」可以做為一個集合,而其枚舉如星期一、星期二、 星期三、星期四、星期五、星期六、星期日,以上稱作星期的枚舉。

通俗來說,列舉就是對一個對象的所有可能取到的值的集合

列舉的定義方式與結構體聯合體相似,其形式為:

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。