C语言枚举类型

实际问题中,有些变量的取值被限制在一定范围内。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等。

C语言提供了一种 枚举(Enum) 类型,可以列出所有可能的取值。定义形式为:
enum 变量名{ 枚举值列表 };
这些值也称为 枚举元素 。注意最后的分号 ; 不能少。

例如,列出一个星期有几天:
enum week{sun, mon, tue, wed, thu, fri, sat};
和结构体一样,枚举变量可以先定义后说明,也可以在定义的同时说明,例如:
enum week a, b, c;
或者:
enum week{sun, mon, tue, wed, thu, fri, sat} a, b, c;
枚举值为常量,不是变量,不能赋值。枚举值默认从0开始,逐个加1。也就是说,上面的代码定义了7个常量,分别为 sun、mon…sat,它们的值分别为 0、1…6。

【示例】枚举的使用。

#include <stdio.h>
int main(){
    enum week{
        sun, mon, tue, wed, thu, fri, sat
    } a, b, c;
    a = sun;
    b = mon;
    c = tue;
    printf("%d, %d, %d\n",a,b,c);
    return 0;
}


运行结果:

0, 1, 2

因为枚举值是常量,不能赋值,所以下面的写法是错误的:
sun = 5;
mon = 2;
只能把枚举值赋予枚举变量,例如:
a = sun;
b = sat;
同时,不建议把数值直接赋给枚举变量,例如:
a = 1;
b = 6;
如果一定要使用数值,必须使用强制类型转换:
a = (enum week)1;
b = (enum week)6;
因为已经使用了 sun、mon…sat 几个标识符,所以不能再使用它们来定义变量等,例如:
int sun = 3;
char mon;
都是错误的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值