轉載 原創為:http://www.cnblogs.com/shrimp-can/p/5171110.html
一、枚舉類型的定義
enum 類型名 {枚舉值表};
類型名是變量名,指定枚舉類型的名稱。
枚舉值表也叫枚舉元素列表,列出定義的枚舉類型的所有可用值,各個值之間用“,”分開。
例:
enum Suit { Diamonds, Hearts, Clubs, Spades };
二、枚舉變量說明
枚舉變量有多種聲明方式:
1.枚舉類型定義與變量聲明分開
如:
enum Suit { Diamonds, Hearts, Clubs, Spades };
enum Suit a;
enum Suit b,c;
變量a,b,c的類型都定義為枚舉類型enum Suit。
2.枚舉類型定義與變量聲明同時進行
如:
enum Suit { Diamonds, Hearts, Clubs, Spades }a,b,c;
此處類型名可以省略,如以下的聲明也是可以的。
enum { Diamonds, Hearts, Clubs, Spades }a,b,c;
3.用typedef先將枚舉類型定義為別名,再利用別名進行變量的聲明
有以下幾種方式:
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.



2.枚舉值是常量不是變量,不能在程序中再為枚舉元素賦值。
四、枚舉型與整型的轉換
枚舉型可以隱式的轉換為int型,int型不能隱式的轉換為枚舉型。
int型不能隱式轉換為枚舉型
枚舉型可以隱式的轉換為int型
參考:https://msdn.microsoft.com/zh-cn/library/2dzy4k6e.aspx
http://www.cnblogs.com/JCSU/articles/1299051.html