列舉資料型別C

2022-09-06 08:51:07 字數 1237 閱讀 3258

列舉資料型別是一種由程式設計師定義的資料型別。其合法值時與它們關聯的一組命名整數常量。

它之所以被稱為列舉型別,是因為命名常量是作為資料型別定義的一部分而列舉或列出的。以下是列舉型別宣告的示例:

enum roster ;

該語句將建立乙個名為roster的資料型別。因為enum是c++關鍵字,所以它必須小寫。但是資料型別本身的名字是以大寫字母開頭的。雖然這並非必須的,但是絕大多數程式設計師都會採用首字母大寫的形式。和roster資料型別關聯的命名整數常量被稱為列舉量。roster資料型別的變數可能只是關聯到這些列舉量的值之一,但是他們的值時什麼呢?預設情況下,編譯器設定第乙個列舉量為0,下乙個為1,以此類推。在上述示例中,tom的值時0,sharon的值時1。

重要的是:enum語句示例並沒有建立任何變數。它只是定義資料型別。當以後建立這個資料型別的變數時,他們看起來就是整數,並且這些整數的值被限制在與列舉集合中的符號名稱相關聯的整數上。

以下語句顯示如何定義roster資料型別的變數:

roster student;

現在已經建立了student變數,它可以被賦予乙個值,如下所示:

student = sharon;

變數的值可以這樣測試:if(student == sharon)

注意:sharon沒有用引號,因為它是乙個命名常量,而不是字串常量。

即使列舉資料型別中的值實際儲存為整數,也不能總是將整數值替換為符號名稱。例如,不能使用下面的語句將sharon賦值給student:

student = 1;  //錯誤。

但是,可以使用整數值而不是符號名稱來測試列舉變數。例如,以下兩個if語句是等效的:

if(student == bill)

if(student == 2)

還可以使用關係運算子來比較兩個列舉變數。

如前所示,預設情況下,列舉列表中的符號將被賦給整數值0,1,2等等。如果這不合適,則可以指定要賦給的值,如一下示例所示:

enum department ;

請記住,如果為列舉符號賦值,則它們必須是整數。一下賦值語句將產生錯誤:

enum department ;    //錯誤

如果賦值時省略了乙個或多個符號,則它們將被賦給乙個預設值,看以下示例:

enum color ;

該示例中,命名常量red將被賦值為0, orange將為1,yellow將為9,green將為10, blue將為11。

因為列舉資料型別的符號名稱與整數值相關聯,所以它們可以在switch語句中使用。

構造資料型別 列舉型別

1 構造資料型別 之前我們學習了基礎資料型別 int double float char等 陣列型別 指標型別,這些都屬於簡單資料型別,而c語言支援使用基本資料型別構造出新的復合資料型別。2 結構型別定義 宣告 對於有些資料,它是由若干不同型別的資料成員組合而成的一種複雜的構造型資料,而陣列只允許儲...

C C 資料型別 列舉

列舉型別的目的是提高程式的可讀性,可以使用關鍵字enum建立新型別 例 enum spectrum enum spectrum color 分析 第一句宣告spectrum為標記名,可以將enum spectrum作為乙個型別名使用 第二句將color變數定義為該型別 第一句的括號中的識別符號列舉了...

c語言的列舉(遍歷列舉)與資料型別總結

一 列舉的概念 列舉是c語言中的一種基本資料型別,並不是構造型別,它可以用於宣告一組常數。當乙個變數有幾個固定的可能取值時,可以將這個變數定義為列舉型別。比如,你可以用乙個列舉型別的變數來表示季節,因為季節只有4種可能的取值 春天 夏天 秋天 冬天。一般形式為 enum 列舉名 1enum seas...