c語言中的列舉

2021-08-01 06:42:36 字數 1432 閱讀 4620

列舉(或列舉)是c中使用者定義的資料型別。它主要用於將名稱分配給積分常量,名稱使程式易於閱讀和維護。

列舉相對來說運用和理解都是比較簡單的

我們直接看例子:

// an example program to demonstrate working

// of enum in c

#include

enum week;

int main()

在上面的例子中,通過列舉定義變數day 然後將wed的值賦給day 因為是列舉型別,所以enum中的每個名稱的值為0, 1, 2, 3, 4, 5, 6

顯然wed值為2 所以day = 2;

看下面這個例子,更加詳細的表現了列舉的預設狀態

#include

enum year;

int main()

在此示例中,for迴圈將從i = 0執行到i = 11,因為i的值最初為jan,為0,dec的值為11。

1、如果我們沒有為列舉名稱顯式分配值,編譯器預設分配從0開始的值。例如,在以下c程式中,星期日獲取值0,星期一變為1,依此類推。

#include

enum day ;

int main()

想必大家已經知道結果了,沒錯就是

the day number stored in d is 4

2、我們可以指定值以任何順序的一些名字,其他沒有分配值的名稱將前乙個名稱的值加一

#include 

enum day ;

int main()

結果:1 2 5 6 10 11 12

3、分配給列舉的名稱的值必須是一些integeral恆定,即,該值必須在範圍從最小可能的整數值到最大可能的整數值。

4、所有列舉常量在其範圍內獨一無二,例如,以下程式編譯失敗

enum state  ;

enum result ;

int main()

報錯:redeclaration  of enumerator "failed' 重新確認列舉者

我們也可以使用巨集定義名稱常量。例如,我們可以使用以下巨集定義「工作」和「失敗」。

#define working 0

#define failed 1

#define freezed 2

當許多相關的命名常量具有積分值時,使用列舉超過巨集有多個優點。

a)列舉遵循範圍規則。

b)列舉變數自動分配值。以下更簡單

enumstate  ;

這樣對比哪個更簡單顯而易見,有木有!

C語言中列舉型別

列舉變數的建立 方法一 enum weekday 宣告了乙個列舉型別enum weekday enum weekday workday,weekend 用上面申明的列舉型別定義列舉變數 workday,weekend 方法二 不宣告有名字的列舉型別,直接定義列舉變數 enum workday,wee...

C語言中enum 列舉

列舉是 c 語言中的一種基本資料型別,它可以讓資料更簡潔,更易讀。列舉語法定義格式為 enum 列舉名 接下來我們舉個例子,比如 一星期有 7 天,如果不用列舉,我們需要使用 define 來為每個整數定義乙個別名 define mon 1 define tue 2 define wed 3 def...

C語言中列舉的使用

通俗來說 當我們要宣告乙個類的時候,要宣告的這個類有多個屬性,我們需要同時給多哥屬性表明屬性資訊時,使用列舉來宣告會清晰明了,方便簡潔。列舉的語法 enum 列舉名 列舉成員 列舉屬性 多個成員之間用逗號隔開,但最後乙個成員屬性不需要有任何結束符號 大括號後一定要分號 呼叫列舉方法 enum 列舉名...