亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

C 語言中的 enum

我們有些時候需要使用一些固定的名稱來代表固定的數值,比如在計算你的課程成績的時候,有的課程會出現用英文字母 A-F 來打分,這個時候你需要換算為一個固定的分值來計算平均分。要實現這個功能,你可以選擇在程序的開始定義一系列的常量,但是這樣的定義會非常繁瑣,而且不方便維護。這個時候就出現了一種變量的類型,枚舉。

1. 聲明 enum

聲明一個枚舉類型,可以采用關鍵字 enum 加上一個自定義的名稱,再加上一系列的枚舉值。

enum Score{
    A = 5,
    B = 4,
    C = 3,
    D = 2,
    E = 1,
    F = 0
};

當讓你也可以采用其默認值,默認情況下,枚舉的數值是整數 0 開始的,然后遞加 1 。

enum Score{F, E, D, C, B, A};

這個定義的枚舉和之前介紹的那個效果是一致的。

同時你還可以采用默認值與自定義值混合的方式來定義一個枚舉。

enum Score{
    E = 1,
    F,
    D = 5,
    C,
    B = 0,
    A
};

在上面的定義中, E 的值為 1 , F 的值為 2 , D 的值為 5 , C 的值為 6 , B 的值為 0 , A 的值為 1 。

2. 使用 enum

一旦定義了一個 enum 那么其值是不能被改變的。使用起來如同查字典一樣,通過一個字符或者字符串來取得對應的數值。

3. 示例程序

#include <stdio.h>

int main()
{
    enum Score
    {
        A = 5,
        B = 4,
        C = 3,
        D = 2,
        E = 1,
        F = 0
    };

    enum Score score1, score2, score3;

    score1 = A;
    score2 = F;
    score3 = D;

    printf("score1: %d, score2: %d, score3: %d\n", score1, score2, score3);

    return 0;
}

運行結果:

score1: 5, score2: 0, score3: 2

程序中聲明了一個枚舉類型,用來映射不同的成績。使用過程中聲明了 3 個變量,然后對變量賦值。這個過程就是一個映射的過程。當對變量賦值后,變量中存儲的就是整數。最后,我們將變量中的值輸出。

4. 小結

對于枚舉其實和之前定義常量是一致的,一旦定義就不能修改或者再次定義。如果嘗試修改或者再次使用之前定義中的枚舉值,就會出現編譯錯誤。

5. 參考文獻