c语言枚举入门,C语言入门-枚举

常量符号化

用符号而不是具体的数字来表示程序中的数字

一、 枚举

用枚举而不是定义独立的const int变量

枚举是一种用户定义的数据类型,它用关键字enum如以下语句来声明enum 枚举类型名字 {名字0 ,、、、 , 名字n};

枚举类型名字通常并不真的使用,要用的是在大括号里的名字,因为它们就是常量符号,他们的类型是int,值则依次从0到,如:enum colors {red , yellow , green};

就创建了三个常量,red的值0,yellow是1,green是2

当需要一些可以排列起来的常量值时,定义枚举的意义就是给了这些常量值名字#include

enum color {red , yellow , green};

void f(enum color c);

int main(void)

{

enum color t = yellow;

// scanf("%d" , &t);

f(t);

return 0;

}

void f(enum color c)

{

printf("%d\n", c);

}

// 1

// 因为yellow的下标是1

注意:

枚举量可以作为值

枚举类型可以跟上enum作为类型

但是实际上是以整数来做内部计算和外部输入输出的

二、自动计数的枚举

这样需要遍历所有的枚举量或者需要建立一个用枚举量做下标的数组的时候很方便

enum COLOR {RED , YELLOW , GREEN , NumCOLLORS};

int main(int argc, char const *argv[])

{

int color = -1;

char *ColorNames[NumCOLLORS] = {

"red" , "yellow" , "green"

};

char *colorName = NULL;

printf("请输入你喜欢的颜色代码:\n");

scanf("%d" , &color);

if(color >= 0 && color

colorName = ColorNames[color];

}else{

colorName = "nuknow";

}

printf("你喜欢的颜色是%s\n", colorName);

return 0;

}

//请输入你喜欢的颜色代码:

//2

//你喜欢的颜色是green

三、枚举量

声明枚举量的时候可以指定值

enum COLOR {RED=1 , YELLOW , GREEN = 5 , NumCOLLORS};enum COLOR {RED=1 , YELLOW , GREEN = 5 , NumCOLLORS};

int main(int argc, char const *argv[])

{

printf("code for GREEN is %d\n" , GREEN);

return 0;

}

// code for GREEN is 5

四、枚举只是int

即使给枚举类型的变量赋不存在的整数值也没有任何error

enum COLOR {RED=1 , YELLOW , GREEN = 5 , NumCOLLORS};

int main(int argc, char const *argv[])

{

enum COLOR color = 0;

printf("code for GREEN is %d\n" , GREEN);

printf("and color is %d\n", color);

return 0;

}

// code for GREEN is 5

// and color is 0

枚举

虽然枚举类型可以当作类型使用,但是实际上很少使用

如果有意义上排比的名字,用枚举比const int 方便

枚举比宏好,因为枚举有int类型

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值