列舉型別的使用

2021-08-21 07:33:51 字數 1131 閱讀 2976

列舉型別的使用

列舉型別對學過程式設計的人而言可謂是既熟悉又陌生,各種語言的教材上都有對列舉型別的介紹,但是真正用過的人可能不多。

我也是因為工作之後才接觸到列舉型別的使用,這時候才知道自己一直對列舉型別都是一知半解,今天通過查閱資料加深了對列舉型別的了解,現將其記錄如下。

1.什麼是列舉型別

enum color;

這裡就是把整型0取別名red,1取別名blue,2取別名black;

也許大家注意到了,為什麼三個成員分別對應0,1,2呢?是巧合嗎?

不是巧合,列舉型別預設從整數0開始,分別與花括號中的各成員對應,而且整數值依次加1。當然也可以指定各別名對應的整型值,如下:

enum color;
此時,red為1,blue為2,black為3,white為5,green為6。需注意:

enum num;

這種寫法是錯誤的,因為列舉花括號中不能是數字。

2.為什麼要使用列舉型別

使用列舉型別的目的是限制使用者的輸入為有限範圍內的整數值,例如上面宣告了color的列舉,那麼,當使用者定義乙個enum color型別的變數時,該變數的值只能是花括號中的某一種顏色,給它賦值為其他都是錯誤的。這種特性很適合處理類似於狀態機中的狀態轉換的情形,將所有的狀態定義為乙個列舉型別中的成員,並為其取合適的名字,會使得程式簡單易懂,不易出錯。

3.列舉型別的用法

我認為想要正確的使用列舉型別,必須要明確一點:列舉型別也是一種資料型別,也可以作為函式的返回值返回。舉例說明如下:

enum weekday;

enum weekday today = mon;

同樣可以使用typedef定義enum weekday型別為weekday,然後用weekday宣告變數,如下:

#include 

#include

typedef enum weekdayweekday;

weekday test_enum()

int main()

輸出結果為0,

列舉型別的使用

使用列舉型別的值建立列舉型別

列舉型別中不僅可以宣告列舉的名稱,還可以加入附加的值如下式 public static enum pushtype public string tostring 其中push type sys稱為列舉的name,0則為列舉型別的value,那如何才能根據列舉型別的value獲取列舉型別的例項呢?見下...

列舉型別的使用

1.列舉的定義列舉型別定義的一般形式為 enum 列舉名 在列舉值表中應羅列出所有可用值。這些值也稱為列舉元素。例如 該列舉名為weekday,列舉值共有7個,即一周中的七天。凡被說明為weekday型別變數的取值只能是七天中的某一天。2.列舉變數的說明 如同結構和聯合一樣,列舉變數也可用不同的方式...

使用列舉型別

using system using system.data using system.configuration using system.collections using system.web using system.web.security using system.web.ui usin...