C 語言 列舉型別

2021-08-21 14:22:03 字數 1356 閱讀 4395

列舉型別(enumeration)是c++中的一種派生資料型別,它是由使用者定義的若干列舉常量的集合。

如果乙個變數只有幾種可能的值,可以定義為列舉(enumeration)型別。所謂"列舉"是指將變數的值一一枚舉出來,變數的值只能在列舉出來的值的範圍內。

建立列舉,需要使用關鍵字enum。列舉型別的一般形式為:

enum 列舉名 列舉變數;
如果列舉沒有初始化, 即省掉"=整型常數"時, 則從第乙個識別符號開始。

例如,下面的**定義了乙個顏色列舉,變數 c 的型別為 color。最後,c 被賦值為 "blue"。

enum color  c;

c = blue;

預設情況下,第乙個名稱的值為 0,第二個名稱的值為 1,第三個名稱的值為 2,以此類推。但是,您也可以給名稱賦予乙個特殊的值,只需要新增乙個初始值即可。例如,在下面的列舉中,green的值為 5。

enum color ;
在這裡,blue的值為 6,因為預設情況下,每個名稱都會比它前面乙個名稱大 1,但 red 的值依然為 0。

列舉型別在使用之前定義;

1.型別定義與變數宣告同時進行:

enum color  c = red;
2. 使用識別符號賦值:

enum color ;

enum color c = red;

3.使用整型值:

enum color ;

enum color c = 5;

1.同一作用域下不能有兩個相同的列舉型別:

2.同一作用域下的兩個列舉型別不能有相同的列舉值:

enum color1 ;

enum color2 ;

3.不能將非列舉量賦給列舉變數,但可以列舉量賦給非列舉變數。如:

int a = red;
這是允許的,因為列舉量是符號常量,這裡的賦值編譯器會自動把列舉量轉換為int型別。

4.列舉型別可進行賦值運算,但不可以進行加減運算。若列舉值為0-6,若進行加減運算,可能會使列舉值超出0-6的範圍。

C語言列舉型別

在實際問題中,有些變數的取值被限定在乙個有限的範圍內。例如,乙個星期內只有七天,一年只有十二個月,乙個班每週有六門課程等等。如果把這些量說明為整型,字元型或其它型別顯然是不妥當的。為此,語言提供了一種稱為 列舉 的型別。在 列舉 型別的定義中列舉出所有可能的取值,被說明為該 列舉 型別的變數取值不能...

C語言列舉型別

實際問題中,有些變數的取值被限制在一定範圍內。例如,乙個星期內只有七天,一年只有十二個月,乙個班每週有六門課程等。c語言提供了一種 列舉 enum 型別,可以列出所有可能的取值。定義形式為 enum 變數名 這些值也稱為 列舉元素 注意最後的分號 不能少。例如,列出乙個星期有幾天 enum week...

c語言列舉型別

在實際應用中,有的變數只有幾種可能取值。如人的性別只有兩種可能取值,星期只有七種可能取值。在程式中,我們可以利用預處理指令 define來完成這項工作,如 define mon 1 define tue 2 define wed 3 define thu 4 define fri 5 define ...