c语言的枚举类型
2017-08-18 11:00
155 查看
今天发现对C语言中的枚举类型不熟悉,在学校的时候仅仅是知道有这个类型,但今天看公司大神写的代码里把枚举类型用得贼溜。而我还是菜鸟看不懂,只好重拾以前的课本,再好好专研枚举类型的用法。
如果一个变量只有几种可能的值,可以定义为枚举类型,所谓的“枚举”就是把可能的值一一罗列出来,但是变量的值只限于罗列出来的值得范围内。
声明枚举类型用enum开头。例如
enum Weekday{sum,mon,tue,wed,thu,fri,sat};
也可以不声明有名字的枚举类型,而直接定义枚举变量,例如:
enum{sun,mon,tue,wed,thu,fri,sat} workday,weekend;
可以用枚举类型来定义枚举变量,枚举变量的取值仅限于枚举类型所罗列的值;例如
enum Weekday(枚举类型) workday,weekend(枚举变量);
workday和weekend被定义为枚举变量,花括号中的sum,mon,...,sat称为枚举元素或枚 举常量。枚举变量workday和weekend的取值只能是sun到sat之间。
workday=mon;//正确
weekend=sun;//正确
weekend=monday;//错误,monday不是指定的枚举元素之一。
说明:
(1)C编译对枚举类型的枚举元素是按常量处理,故称枚举变量。因此不能对枚举元素赋值。
(2)枚举元素本身由系统本身定义了一个表示序号的数值,从0开始顺序定义为0,1,2,3,4.......等。
(3)只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。如:
workday=mon;//正确
workday=1;//错误
(4)如一定要把数值赋予枚举变量,则必须用强制类型转换。 如:
workday=(enum weekend)1;
如果一个变量只有几种可能的值,可以定义为枚举类型,所谓的“枚举”就是把可能的值一一罗列出来,但是变量的值只限于罗列出来的值得范围内。
声明枚举类型用enum开头。例如
enum Weekday{sum,mon,tue,wed,thu,fri,sat};
也可以不声明有名字的枚举类型,而直接定义枚举变量,例如:
enum{sun,mon,tue,wed,thu,fri,sat} workday,weekend;
可以用枚举类型来定义枚举变量,枚举变量的取值仅限于枚举类型所罗列的值;例如
enum Weekday(枚举类型) workday,weekend(枚举变量);
workday和weekend被定义为枚举变量,花括号中的sum,mon,...,sat称为枚举元素或枚 举常量。枚举变量workday和weekend的取值只能是sun到sat之间。
workday=mon;//正确
weekend=sun;//正确
weekend=monday;//错误,monday不是指定的枚举元素之一。
说明:
(1)C编译对枚举类型的枚举元素是按常量处理,故称枚举变量。因此不能对枚举元素赋值。
(2)枚举元素本身由系统本身定义了一个表示序号的数值,从0开始顺序定义为0,1,2,3,4.......等。
(3)只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。如:
workday=mon;//正确
workday=1;//错误
(4)如一定要把数值赋予枚举变量,则必须用强制类型转换。 如:
workday=(enum weekend)1;
相关文章推荐
- C语言热身——预处理指令、变量类型、static和extern、结构体、枚举
- C语言中枚举(enum)类型的用法
- 黑马程序员_C语言的变量类型和枚举
- C语言学习笔记:23_枚举类型
- C语言中enum枚举类型
- C语言自学《二》下篇---- 类型的转换、字符类型、枚举、数学函数
- C语言的枚举类型
- C语言构造数据类型之结构体、共用体、枚举
- [C语言]进阶|结构类型: 枚举, 结构, 类型定义
- Android For JNI(五)——C语言多级指针,结构体,联合体,枚举,自定义类型
- 黑马程序员——C语言之构造类型(结构体、枚举)
- c语言之枚举类型(enum)
- C语言_自定义类型_枚举 联合
- C语言enum(枚举)数据类型
- C语言数据类型之枚举类型
- C语言技巧【枚举作为函数变量类型】【数据输入与输出】【do while循环体内scanf函数被跳过,循环结束】【用const修饰函数的参数】
- C语言:枚举类型
- C语言进阶-第29讲:枚举类型及其应用(对称点)
- c语言的枚举(遍历枚举)与数据类型总结
- C语言03_构造类型 数组, 结构体, 共用体, 枚举类型介绍