C++枚舉類型詳解


 

轉載 原創為: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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM