實際問題中,有些變數的取值被限制在一定範圍內。例如,乙個星期內只有七天,一年只有十二個月,乙個班每週有六門課程等。
c語言提供了一種
列舉(enum)
型別,可以列出所有可能的取值。定義形式為:
enum 變數名;
這些值也稱為
列舉元素
。注意最後的分號;
不能少。
例如,列出乙個星期有幾天:
enum week;和結構體一樣,列舉變數可以先定義後說明,也可以在定義的同時說明,例如:
enum week a, b, c;或者:
enum week a, b, c;列舉值為常量,不是變數,不能賦值。列舉值預設從0開始,逐個加1。也就是說,上面的**定義了7個常量,分別為 sun、mon…sat,它們的值分別為 0、1…6。
【示例】列舉的使用。
#include int main() a, b, c;
a = sun;
b = mon;
c = tue;
printf("%d, %d, %d\n",a,b,c);
return 0;
}
執行結果:
0, 1, 2
因為列舉值是常量,不能賦值,所以下面的寫法是錯誤的:
sun = 5;只能把列舉值賦予列舉變數,例如:mon = 2;
a = sun;同時,不建議把數值直接賦給列舉變數,例如:b = sat;
a = 1;如果一定要使用數值,必須使用強制型別轉換:b = 6;
a = (enum week)1;因為已經使用了 sun、mon…sat 幾個識別符號,所以不能再使用它們來定義變數等,例如:b = (enum week)6;
int sun = 3;都是錯誤的。char mon;
C語言列舉型別
在實際問題中,有些變數的取值被限定在乙個有限的範圍內。例如,乙個星期內只有七天,一年只有十二個月,乙個班每週有六門課程等等。如果把這些量說明為整型,字元型或其它型別顯然是不妥當的。為此,語言提供了一種稱為 列舉 的型別。在 列舉 型別的定義中列舉出所有可能的取值,被說明為該 列舉 型別的變數取值不能...
c語言列舉型別
在實際應用中,有的變數只有幾種可能取值。如人的性別只有兩種可能取值,星期只有七種可能取值。在程式中,我們可以利用預處理指令 define來完成這項工作,如 define mon 1 define tue 2 define wed 3 define thu 4 define fri 5 define ...
C語言列舉型別
巨集和列舉都可以將變數換乙個別名 對比 巨集 列舉 差別 作用時期 儲存形式 巨集 預處理階段 替換,程式執行 不存在 列舉 程式執行 後 起作用,列舉常量 儲存 資料段 靜態儲存區里。巨集 佔 段 空間,列舉 佔空間 耗cpu資源。若定義非常多的常量 一條enum 比大堆define更清晰定義別名...