A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 靳小龙 中级黑马   /  2015-9-4 19:50  /  832 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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;
都是错误的。

3 个回复

倒序浏览
好快啊,还没看到呢
回复 使用道具 举报
谢谢楼主分享,互相学习是很好的。
回复 使用道具 举报
你这是拷贝老师的笔记么?。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马