轉載:https://www.cnblogs.com/shrimp-can/p/5171110.htmlhtml
enum 類型名 {枚舉值表};ui
類型名是變量名,指定枚舉類型的名稱。spa
枚舉值表也叫枚舉元素列表,列出定義的枚舉類型的全部可用值,各個值之間用「,」分開。htm
語法結構:
enum [枚舉名] {e1[=Value1], e2[=Value2] ,… …};blog
e一、e2… …:稱爲枚舉常量,枚舉成員,也稱爲枚舉子。
Value1,Value2… …:稱爲枚舉子值,即枚舉值,可忽略不寫,默認從0依次賦值。字符串
例如:it
enum color {red,green,blue}; //枚舉值分別爲0,1,2.
定義枚舉類型變量:
[enum] 枚舉名 枚舉變量名 [=初始化值];
例如:class
color paint = red;
或變量
enum color paint = red;
2、枚舉變量聲明(相似結構體)語法
枚舉變量有多種聲明方式:
如:
enum Suit { Diamonds, Hearts, Clubs, Spades };
enum Suit a;
enum Suit b,c;
變量a,b,c的類型都定義爲枚舉類型enum Suit(相似結構體struct)。
如:
enum Suit { Diamonds, Hearts, Clubs, Spades }a,b,c;
此處類型名能夠省略,如如下的聲明也是能夠的。
enum { Diamonds, Hearts, Clubs, Spades }a,b,c;
有如下幾種方式:
1).typedef enum Suit { Diamonds, Hearts, Clubs, Spades }Suit;
enum Suit a;
enum Suit b,c;
2).typedef enum{ Diamonds, Hearts, Clubs, Spades }Suit;
enum Suit a;
enum Suit b,c;
3).typedef enum Suit { Diamonds, Hearts, Clubs, Spades };
enum Suit a;
enum Suit b,c;
注意:同一程序中不能定義同類型名的枚舉類型;不一樣枚舉類型的枚舉元素不能同名。
1.將會爲每一個枚舉元素分配一個整型值,默認從0開始,逐個加1。
2.也能夠在定義枚舉類型時對枚舉元素賦值,此時,賦值的枚舉值爲所賦的值,而其餘沒有賦值的枚舉值在爲前一個枚舉值加1.
3.枚舉值是常量不是變量,和const定義常變量同樣,不能在程序中再爲枚舉元素賦值。
4. 枚舉成員不是簡單字符串常量,使用的時候無需添加單、雙引號。
5.枚舉成員不能夠重複,可是枚舉值能夠重複。重複枚舉值的枚舉成員代表它們具備共同性質,因此放在一塊兒。
enum weeks {mon=1,tue=1,wed=1,thu=1,fri=1,sat=2,sun=2};
6.一個整數不能直接賦給一個枚舉變量,必須強制進行類型轉換才能賦值。
enum weeks day; day =(weeks)2;
枚舉型能夠隱式的轉換爲int型,int型不能隱式的轉換爲枚舉型。
int型不能隱式轉換爲枚舉型
枚舉型能夠隱式的轉換爲int型