天天看點

c語言之枚舉

1.常量符号化

  • 用符号而不是具體的數字來表示程式中的數字

2.枚舉

  • 用枚舉而不是定義獨立的const int變量
  • 是一種使用者定義的資料類型,用關鍵字enum以下文法來說明:
  • enum 枚舉類型名字{名字0,名字1…名字n}
  • 枚舉類型名字通常并不真的使用,要用的是大括号裡的名字,因為他們就是常量符号,他們的類型是int,值則依次從0~n,如:
  • enum colors{red,yellow,green}
#include <stdio.h>
enum color{red,yellow,green};
int main(void)
{
    printf("red=%d\n",red);
    printf("yellow=%d\n",yellow);
    printf("green=%d\n",green);

    return 0;
}

           
c語言之枚舉
  • 枚舉量可作為值
  • 枚舉類型可以跟上enum作為類型
  • 但是實際上以整數來做内部計算和外部輸入輸出的
  • 小套路:自動計數的枚舉
  • 聲明枚舉變量是可以指定值
  • 枚舉隻是int,用于有意義的排比名字,用枚舉比const int友善
  • 枚舉比宏(macro)好,因為枚舉有int類型
#include <stdio.h>

//NumCOLORS很重要,它的下标+1即為個數
enum COLOR{RED,YELLOW,GREEN,NumCOLORS};
int main(void)
{
    int color=-1;
    char *ColorName[NumCOLORS]={
    "red","yellow","green",
    };

    char *colorName=NULL;

    printf("輸入你喜歡的顔色代碼:");
    scanf("%d",&color);
    if(color>=0&&color<NumCOLORS){
        colorName=ColorName[color];
    }
    else{
        colorName="unknown";
    }
    printf("你喜歡的顔色是%s\n",colorName);
    return 0;
}

           

繼續閱讀