如果一個變數只有幾種可能的值,則可以定義為列舉型別;
所謂“列舉”就是指把可能的值一一列舉出來,變數的值只限於列舉出來的值的範圍內。
定義格式:
enum [列舉名]
{
列舉元素列表
}[列舉變數列表];
複製程式碼
說明:
1、C編譯對列舉型別的列舉元素按常量處理,故稱列舉常量。不要因為它們是識別符號(有名字)而把它們看作變數,不能對它們賦值。例如: sun = 0; 錯誤;
2、每一個列舉元素都代表一個整數,C語言編譯按定義時的順序預設它們的值為0, 1, 2, 3, 4, 5,…,也可以人為地指定列舉元素的數值;
3、列舉元素可以用來作判斷比較。例如:if(workday == mon)…if(workday>sun)…
4、列舉型別雖然可以用int型別取代,但int型別範圍大,列舉型別的取值不是很多,能進行值檢查;第二個原因是列舉直觀,見名知意。
enum Day
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
};
void main(){
//列舉的值,必須是括號中的值
enum Day d = Monday;
printf("%#x\n %d\n", &d, d);
getchar();
}
複製程式碼