首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C 語言枚舉類型深度解析:賦值規則、底層整數映射與 switch 實戰

     編輯:關於C語言

枚舉三大核心規則

  1. 枚舉元素是常量,不可修改:sun = 5; ❌ 編譯錯誤
  2. 隱式整數映射:默認從 0 遞增(sun=0, mon=1, ..., sat=6),可顯式指定初值
  3. 強類型賦值:只能 a = sun;,不能 a = 0;。需轉換:a = (enum weekday)2; 相當於 a = tue;

基本用法範例

enum weekday { sun, mon, tue, wed, thu, fri, sat } a, b, c;
a = sun; b = mon; c = tue;
printf("%d,%d,%d", a, b, c);  // 輸出 0,1,2

進階應用:循環賦值與 switch 處理

enum body { a, b, c, d } month[31], j;
j = a;
for (i=1; i<=30; i++) {
    month[i] = j;
    if (++j > d) j = a;  // 循環 a→b→c→d
}
for (i=1; i<=30; i++) {
    switch (month[i]) {
        case a: printf("%2d %c\t", i, 'a'); break;
        case b: printf("%2d %c\t", i, 'b'); break;
        case c: printf("%2d %c\t", i, 'c'); break;
        case d: printf("%2d %c\t", i, 'd'); break;
    }
}

展示枚舉變量自增、邊界循環、switch 分支處理的完整流程。

關鍵提醒

  • 枚舉元素不是字符/字符串常量,勿加引號
  • printf 無法直接輸出元素名,只能輸出底層整數值
  • 枚舉增強代碼可讀性,編譯器可做類型檢查,優於 #define 常量群
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved