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