天天看点

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;
}

           

继续阅读