特殊型別結構 列舉

2021-10-03 18:49:17 字數 1769 閱讀 9744

在數學和電腦科學理論中,乙個集的列舉是列出某些有窮序列集的所有成員的程式,或者是一種特定型別物件的計數。這兩種型別經常(但不總是)重疊。

列舉在c/c++/c#中,是乙個被命名的整型常數的集合, 列舉在日常生活中很常見。

例如表示星期的sunday, monday, tuesday, wednesday, thursday,friday,saturday,就是乙個列舉。

列舉的說明與結構和聯合相似, 其形式為:

enum 列舉名 列舉變數;

如果列舉沒有初始化,即省掉"=整型常數"時, 則從第乙個識別符號開始,順次賦給識別符號0, 1, 2, …。但當列舉中的某個成員賦值後,其後的成員按依次加1的規則確定其值。

列舉類形類似於巨集定義,相當於建立起物理世界和程式之間的聯絡,可以簡

單地理解為利用 #define 構建了表示結構,程式通過列舉限制變數的取值範圍

#include

#define class_1 0

#define class_2 1

intmain()

;//列舉裡為整數

week day;

day=monday;

printf

("今天是星期:%d\n"

,day)

; day=tuesday;

printf

("今天是星期:%d\n"

,day)

; day=wednesday;

printf

("今天是星期:%d\n"

,day)

; day=thursday;

printf

("今天是星期:%d\n"

當給定列舉中的值時:

#include

#define class_1 0

#define class_2 1

intmain()

;//列舉裡為整數

week day;

day=monday;

printf

("今天是星期:%d\n"

,day)

; day=tuesday;

printf

("今天是星期:%d\n"

,day)

; day=wednesday;

printf

("今天是星期:%d\n"

,day)

; day=thursday;

printf

("今天是星期:%d\n"

,day)

;return0;

}

注:列舉的遍歷

//如果想把星期一到星期日都輸出

//遍歷列舉輸出列舉值

以下這個方法很多語言中是可以的,但c中不可以

for(day=monday;day<=sunday;day++

)//下面這種遍歷的結果是遍歷的整體,而不是其中在前面定義中的week中的所有

for(i=

0;i<=

7;i++

)//無論前面的monday等定義的是什麼值,這個遍歷的結果都是0到7

遍歷是一種非常重要的型別,需要自己理解。

C 列舉型別和結構體

注意 列舉型別和結構體都屬於值型別。結構體 就是乙個自定義的集合,裡面可以放各種型別的元素,用法大體跟集合一樣。一 定義的方法 struct student public int nianling public int fenshu public string name public string ...

C結構體與列舉型別

struct 結構體標籤 結構體變數 include include struct user leader 3 int main int argc,char args return 0 通過.號進行成員訪問,若通過指標指向結構體,訪問為 p attr 或者是p attr,同理可得 include i...

異常 列舉型別 及邏輯結構

1 異常捕獲 我們在程式中經常會遇到各種各樣的異常,如果想要您的程式變得堅強一些,在您的 中應該經常性的使用try catch來進行捕獲異常。語法 try try和catch之間不能有任何 catch 執行過程 如果try中的 沒有出現異常,那麼catch中的 不會執行。如果try中的 出現異常,哪...