c語言(列舉(enumeration)型別)

鋸齒流沙發表於2017-12-13

如果一個變數只有幾種可能的值,則可以定義為列舉型別;

所謂“列舉”就是指把可能的值一一列舉出來,變數的值只限於列舉出來的值的範圍內。

定義格式:

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();
}
複製程式碼

執行結果.png

相關文章