[C++, CPP] 基本資料型態(Fundamental Data Type)
列舉型態(Enumeration)
- 寫程式時,有時會希望變數的值,只能是特定的指定值之一,此時就要用列舉型態
- 宣告:
- enum 型別名稱 { 值1, 值2, 值3,.... };
- enum 型別名稱 { 值1, 值2, 值3,.... } 變數名稱1,變數名稱2,...;
- 匿名宣告:因為沒有定義型別名稱,所以只有在宣告列舉型態時可以宣告變數,之後就無法宣告該型態的變數
- enum { 值1, 值2, 值3,.... } 變數名稱1,變數名稱2,...;
-
enum { Sun=5, Mon, Tues, Wed, Thurs, Fri, Sat } week1; week1 = Tues; week1 = Week(7); // 同 week1 = Tues;
- 每個列舉型態佔用4bytes
- 列舉子(Enumerator):列舉型態裡面的值
- 每個列舉子都會被定義一個整數值,如果沒有指定整數值,則預設是由0開始自動遞增
-
enum Week { Sun, Mon, Tues, Wed, Thurs, Fri, Sat } week1; week1 = Tues; week1 = Week(2); // 同 week1 = Tues
-
- 列舉子的值可以重複
- 預設值1=0,值2=1,值3=2...
- 若只定義第1個數值,則後序的數值會自動遞增。
-
enum Week { Sun=5, Mon, Tues, Wed, Thurs, Fri, Sat } week1; week1 = Tues; week1 = Week(7); // 同 week1 = Tues;
-
- 若要用整數值設定列舉型態變數,則要先轉型
-
enum Week { Sun, Mon, Tues, Wed, Thurs, Fri, Sat }; Week week1 = Tues; Week week2 = static_cast <week>(2); Week week3 = Week(2);
-
- 每個列舉子都會被定義一個整數值,如果沒有指定整數值,則預設是由0開始自動遞增