c c 複習基礎要點16 列舉型別

2021-06-18 15:26:57 字數 1173 閱讀 8308

列舉型別:

語法格式:

enum 列舉型別名 ;

例如:enum  weekday;

宣告了列舉型別後,就可以定義列舉型別的變數了。定義列舉變數的語法格式為:

enum 列舉型別名  標示符;

或列舉型別名  標示符;

例如:enum  weekday aday;

也可以把宣告列舉型別和定義列舉型別變數合為一步:

enum 標示符;

例如:enum  aday;

變數aday的值只能是sun到sat之一

宣告列舉型別時,變數值列表中的標示符是一些符號常量,每乙個都對應乙個確定的整數值。第乙個符號常量的值為0,第二為1,以此類推。

也可以在宣告列舉型別時自行制定符號常量的值,制定的值必須是整數。

例如:enum weekday;

其中,sun=0、mon=1、tue=5、wed=6、….sat=9.

不能把乙個整數值直接賦值給乙個列舉型別的變數:

aday=2;       //錯誤

但是可以通過強制型別轉換將整數賦值給列舉型別的變數。

例如:aday=(weekday)2;

例項:#include

using namespace std;

void main()

enum weekday;

weekday  day1 , day2;

int  in1,in2;

cout<< 「請輸入兩個0到6之間的整數:」>in1>>in2;

day1=(weekday)in1;

day2=(weekday)in2;

if(day1==day2)

cout<< 「您輸入的都是」;

switch(day1)

case sun: cout<< 「星期日」cout<< 「您輸入的兩天分別是:」;

switch(day1)

case sun: cout<< 「星期日」case sun: cout<< 「星期日」下面**片段的輸出是:

enum{

a ,b , c = 1 ,d,

std::cout答案:b

預設下」接下來的枚舉子取值是前面乙個枚舉子的取值+1「。既然這兩個枚舉子沒有顯式賦值,那麼就按照預設規則辦事,所以b==1,d==2 從這個例子也可以看出,同一列舉中枚舉子的取值不需要唯一。

9 4 列舉型別

乙個變數只有幾種可能的取值,可以一一枚舉出來,變數的取值僅限於列舉的值的有限範圍內,而不適宜用整型 實型 字元型直接表示,c語言提供了這種列舉資料型別。例如,一年的四季有春夏秋冬 乙個星期有星期日 星期一到星期六等。定義列舉型別的一般形式為 enum 列舉型別名 如 enum weekday 1.列...

146 列舉型別

除了簡單的變數型別之外,c 還提供了3個複雜的變數 列舉,結構和陣列。列舉型別的定義 enum 列舉型別的宣告 列舉型別的賦值 在遊戲中我們可以定義乙個int型別來儲存狀態 0 遊戲暫停 1遊戲失敗 2遊戲勝利 3開始選單,但是這樣不容易閱讀,而且容易出錯。這個時候我們通過列舉型別來解決 enum ...

3 5 9 列舉型別

有時,變數的取值只在乙個有限的集合內。例如 銷售的服裝或服裝只有小 中 大 和超大的四種尺寸。當然,可以將這些尺寸分別編碼為1 2 3 4或s m l x。但這樣存在著一定的隱患。在變數中很可能儲存的是乙個錯誤的值 如0或m 針對這種情況,可以自定義列舉型別。列舉型別包括有限個命名的值。例如,enu...