枚舉enum類型

轉載:https://www.cnblogs.com/shrimp-can/p/5171110.htmlhtml

1、枚舉類型的定義

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、枚舉變量聲明(相似結構體)語法

枚舉變量有多種聲明方式:

1.枚舉類型定義與變量聲明分開

如:

enum Suit { Diamonds, Hearts, Clubs, Spades };

enum Suit a;

enum Suit b,c;

變量a,b,c的類型都定義爲枚舉類型enum Suit(相似結構體struct)。

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;

注意:同一程序中不能定義同類型名的枚舉類型;不一樣枚舉類型的枚舉元素不能同名。

 

3、枚舉語法

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;

4、枚舉型與整型的轉換

枚舉型能夠隱式的轉換爲int型,int型不能隱式的轉換爲枚舉型。

int型不能隱式轉換爲枚舉型

枚舉型能夠隱式的轉換爲int型

 

相關文章
相關標籤/搜索