列舉型別
目錄
- 列舉型別
- 1. 定義
- 2. 列舉元素的值
- 2.1 預設
- 2.2 全部賦值
- 2.3 部分賦值
- 3. 列舉變數的定義方式
- 3.1 先定義列舉型別,再定義列舉變數
- 3.2 同時定義列舉型別和列舉變數
- 3.3 忽略列舉名,直接定義列舉變數
- 3.4 結合typedef關鍵字
- 4. 總結
1. 定義
列舉是用來代表整數常量的符號
預設形式:
enum 列舉名 {列舉元素, ...};
2. 列舉元素的值
2.1 預設
列舉元素的值,預設從0開始,逐項+1
// 從SUNDAY開始,值分別是0,1,……,6
enum DAY {SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY,FRIDAY, SATURDAY};
2.2 全部賦值
// 列舉元素的值以賦值結果為準
enum DAY {
SUNDAY = 20,
MONDAY = 30,
TUESDAY = 100,
WEDNESDAY = 1024,
THURSDAY = 580,
FRIDAY = 699,
SATURDAY = 21
};
2.3 部分賦值
與預設情況相同,在列舉元素無賦值的情況下,值預設為上一列舉元素的值+1,首個列舉元素的值預設為0。
// SUNDAY = 0,TUESDAY = 31,WEDNESDAY = 32
// 其餘列舉元素的值以賦值結果2為準
enum DAY {
SUNDAY,
MONDAY = 30,
TUESDAY,
WEDNESDAY,
THURSDAY = 580,
FRIDAY = 699,
SATURDAY = 21
};
3. 列舉變數的定義方式
3.1 先定義列舉型別,再定義列舉變數
// 定義列舉型別
enum DAY {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
};
// 定義列舉變數
enum DAY day;
3.2 同時定義列舉型別和列舉變數
enum DAY {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
} day; // 已經完成了對於列舉變數day的定義
3.3 忽略列舉名,直接定義列舉變數
enum {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
} day; // 僅定義了列舉變數day
3.4 結合typedef關鍵字
使用typedef
關鍵字,建立了一個新的型別名,簡化了enum
型別的宣告,無需再寫enum
。
typedef enum {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
} DAY;
DAY today = WEDNESDAY; // 無需寫成enum DAY day;
4. 總結
- 例子中各列舉元素的值分別是多少?
enum day {
SUNDAY,
MONDAY = 30,
TUESDAY,
WEDNESDAY,
THURSDAY = 580,
FRIDAY = 699,
SATURDAY = 21
};
- 請說明列舉型別4種定義方式,並舉出具體的例子。