枚舉類型是一種用戶自定義類型
是由若干個有名字常量組成的有限集合
使程序的可讀性增強
定義格式:
enum<枚舉類型名>
{
<枚舉元素>[=<整型變量>],
...
};
默認第一個枚舉元素爲0,到n-1。
enum season
{
spring = 1,
summer,
autumn,
winter
};
spring指定爲1,summer = 2,autumn = 3,winter = 4。
enum weekday
{
Mon = 1,
Tues,
Wed,
Thus,
Fri,
Sat,
Sun = 0
};
Mon = 1, Tues = 2, Wed = 3, Thus = 4, Fri = 5, Sat = 6, Sun =0.
枚舉變量的使用:
①season TempS1;
TempS1 = spring;
②enum color{
Red,
Yellow,
Green,
Blue,
Black
}c1,c2;
c1 = Green;
枚舉變量與整型的關係:
整型值只能顯式地轉換爲一個枚舉值,如果轉換的結果位於該枚舉取值範圍之外,則結果是無定義的。
enum e1{
dark = 1,
light = 10
};
e1 VAR1 = e1(50); //無定義
e1 VAR2 = e1(3); //編譯通過
不允許隱式的從整型轉換到枚舉是因爲大部分整型值在特定的枚舉裏沒有對應的表示。
一個枚舉類型的sizeof就是某個能夠容納其範圍的整型的sizeof,而且不會大於sizeof(int),除非某個枚舉子的值不能用int或者unsigned int 來表示。
總結:
①枚舉類型適用於switch-case 語句。
②枚舉類型不支持cin>>和cout<<(輸出其標號)。
③枚舉類型之間的比較可以用<、>、<=、>=、==、!=。
④枚舉類型可以做函數的返回類型。
⑤枚舉是用戶自定義類型,可以爲它定義自身的操作,如++或者<<。