c语言中枚举的使用
2015-08-18 23:06
260 查看
枚举的定义:
枚举的定义: enum [枚举名] {美剧类型列表}; 说完了声明枚举,我们开始考虑具 “枚举常量” 代表什么?通过上边的定义 我们可以写出枚举的基本写法(ps: [] 代表可选);
1. 声明 使用
enum Weekday { sun, mon, tue, wed, thu, fri, sat }; // ok enum Weekday weekday,weekend;
2. 声明 使用
enum Weekday { sun, mon, tue, wed, thu, fri, sat }weekday,weekend;
枚举常量
1. 我们举个例子说明#include <stdio.h> enum Weekday { sun = 7, mon = 0, tue = 1, wed = 3, thu, fri, sat }weekday,weekend; int main(int argc, char *argv[]) { printf("%d\n",weekday=sun); printf("%d\n",weekday=mon); printf("%d\n",weekday=tue); printf("%d\n",weekday=wed); return 0; }
![](http://images0.cnblogs.com/blog2015/493357/201508/182234366607427.png)
我们 总结一下陈词:
C编译对枚举类型的枚举元素按照常量处理,所以称之为枚举常量。
每一个枚举元素都代表一个整数,C语言编译是按照定义时的顺序默认它们的值为0,也就是说如果
开始的时候如果未对 “sun” 赋初始值的话, “sun”即为 0; 后边的数字为 1,2,3,4,5,6。
枚举易错
#include <stdio.h> enum Weekday { sun = 7, mon = 0, tue = 1, wed = 3, thu, fri, sat }one,two,three; int main(int argc, char *argv[]) { one = mon; two = tue; three = wed; printf("%d %d %d\n",one,two,three); return 0; }
1. 因为枚举值是常量,不能赋值,所以下面的写法是错误的
sun = 5; mon = 2;
只能把枚举值赋予枚举变量,例如:
a = sun; b = sat;
2.同时,不建议把数值直接赋给枚举变量,例如
a= 1; b= 6;
a = (enum week)1; //如果一定要使用数值,必须使用强制类型转换:
b = (enum week)6;
因为已经使用了 sun、mon…sat 几个标识符,所以不能再使用它们来定义变量等,例如:
int sun = 3; char mon;
都是错误的。
相关文章推荐
- C++例程20150818-001
- C语言相关知识点
- C++垃圾回收器的实现
- 最小生成树克鲁斯卡尔算法c语言实现__Kruskal
- C++学习 图形接口及window窗口
- C++ Primer : 第十章 : 泛型算法 之 lambda表达式和bind函数
- C++代码之 常用算法汇总
- C++ Primer 5e chapter 2
- 02==C语言(数据类型,进制转换,三码)
- C++Huffman树的构造实现及编码译码过程
- 使用C++转型操作符(More Effective_C++_2(基础))
- C++ 实现堆排序
- C语言正则表达式的匹配问题
- C语言例程20150817-001(平台Visual Studio 2012)
- C语言实现直接插入排序,冒泡排序以及二分查找(巩固理解记忆)
- C语言之文件操作08——总结
- C++ delete错误
- python C语言文件IO读取树莓派CPU、GPU温度
- 学习算法-基数排序(radix sort)卡片分类(card sort) C++数组实现
- 常对象只能调用常函数成员 c++