C枚舉類型小結

C枚舉類型小結

枚舉類型定義了一組常量,其本質爲整型。下面就以星期爲背景,對C中的枚舉做一個小結

枚舉的定義

enum WEEK{MON,TUE,WES,THR,FRI};

此代碼定義了一個名爲WEEK的枚舉類型,其中有周一到週五的5種不同的常量。這些常量本質上爲整型,可以賦值給其他整型變量或者賦值給一個WEEK類型的變量。枚舉變量的定義方法如下:

enum WEEK var = MON;

這裏定義了一個WEEK類型的變量var,並將其賦初值爲MON。此外,我們還可以將枚舉類型的定義和變量的聲明寫在一起,語法結構類似於結構體:

enum WEEK
{
    MON, TUE, WES, THR, FRI
} myVar;

也可以在這基礎上直接賦值:

enum WEEK
{
    MON, TUE, WES, THR, FRI
} myVar = TUE;

枚舉元素的值

枚舉元素的值本質上爲整型。對與枚舉中的每個元素的實際整型值,C是這樣處理的:

  • 如果不人爲賦予這些元素初值,那麼這些元素的初值從0開始,然後依次遞增
    • 如本例中,MON就是0,TUE就是1,以此類推
  • 可以人爲的爲某些或全部元素賦初值,那麼這些元素的初值以人爲授予的值爲準
  • 如果一個元素沒有人爲賦值,那麼它就是前者值加一

由於enum的本質就是整型,因此可以將元素直接賦值給一個int變量,也可以將任意一個數賦值給enum的變量。但是請注意,不要使用後者,因爲這會打破enum所代表的語義,enum變量攜帶的值應該爲此枚舉集合中元素的值。關於enum元素的使用,我們可以認爲它與“const int”類型的使用相同。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章