列舉型別的使用
列舉型別對學過程式設計的人而言可謂是既熟悉又陌生,各種語言的教材上都有對列舉型別的介紹,但是真正用過的人可能不多。
我也是因為工作之後才接觸到列舉型別的使用,這時候才知道自己一直對列舉型別都是一知半解,今天通過查閱資料加深了對列舉型別的了解,現將其記錄如下。
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...