C语言自定义类型 — 枚举
联合体:http://t.csdn.cn/xPGVu
结构体: http://t.csdn.cn/vVtua
这次带着大家学习了枚举类型的定义、优点以及使用。
下一篇将带着大家学习联合体方面的知识。
目录
枚举
1.枚举类型的定义
2.枚举类型的优点
3.枚举类型的使用
枚举
枚举其实就是一一列举的意思,把可能的取值一一列举。
例如:
- 一周的星期一到星期天一共有7天,可以一一列举。
- 性别有男、女人、保密也可以一一列举。
- 月份有12个月,也可以一一列举。
取值是有限的。
#
1.枚举类型的定义
例1:
enum Day//星期
{
Mon,
Tous,
Wed,
Thur,
Fri,
Sat,
Sun
};
struct stu
{
int a;
char b;
};
- enum 是枚举关键字,Day 是枚举的标签;struct 是结构体关键字,stu 是结构体的标签。
- 两者都有1个{}和分号,结构体的叫成员变量,枚举的叫枚举常量。
- 在语法形式上,枚举都是一逗号结尾的,而结构体则是分号。
例2:
enum Day//星期
{
Mon,
Tous,
Wed,
Thur,
Fri,
Sat,
Sun
};
int main()
{
enum Day d = Fri;
return 0;
}
- 此时的d表示的是星期五的意思,而且d的值只能是枚举类型其中的一个。
- {} 里面的内容是枚举类型的可能取值。
枚举类型的可能取值都是有值的,默认从0开始,一次递增1,当然在定义的时候也可以赋初值。
例3:
enum Day//星期
{
Mon,//0
Tous,//1
Wed,//2
Thur,//3
Fri,//4
Sat,//5
Sun//6
};
int main()
{
printf("%d\n", Mon);
printf("%d\n", Tous);
printf("%d\n", Wed);
return 0;
}
代码结果:
例4:
修改枚举的默认值
enum Day//星期
{
Mon = 1,
Tous,
Wed,
Thur,
Fri,
Sat,
Sun
};
int main()
{
//enum Day d = Fri;
printf("%d\n", Mon);
printf("%d\n", Tous);
printf("%d\n", Wed);
printf("%d\n", Thur);
printf("%d\n", Fri);
printf("%d\n", Sat);
printf("%d\n", Sun);
return 0;
}
代码结果:
2.枚举类型的优点
为什么要使用枚举呢
枚举的优点:
- 增加代码的可读性和可维护性
- 和#define定义的标识符比较枚举有类型检查,更加严谨
- 防止命名污染(封装)
- 便于调试
- 使用方便,一次可以定义多个常量
3.枚举类型的使用
enum Color//颜色
{
RED = 1,
GREEN = 2,
BLUE = 4
};
int main()
{
enum Color color = GREEN;//只能拿枚举常量给枚举变量赋值,才不会出现类型的差异。
color = 5; //error
return 0;
}
还没有评论,来说两句吧...