c语言枚举类型


一、c语言枚举类型简介

在c语言中,除结构、联合还有另外一种c语言自定义类型枚举类型。
枚举类型是将一组整型符号常量按顺序集合成一种数据类型,我们将这种数据类型称之为枚举类型。
这种整型符号常量叫做该枚举类型的元素,每个枚举元素都有确定的元素值。


枚举的含义就是将这种变量的所有可能值 一一列举出来。
现实生活中,有很多事物可以采用枚举类型进行一一列举:
例:一个业务单据的状态;星期一…星期天;数据库的状态:正常 异常 关闭;信号灯 等等。


二、枚举的定义

枚举定义:
enum 枚举类型名{枚举元素1,枚举元素2,枚举元素3…,枚举元素n};
//枚举的定义中,枚举元素后面紧跟逗号
枚举的使用:
<存储类型> enum 枚举类型名 枚举变量名;
//注意事项:
1 枚举变量具有变量的属性,可以读取它的值和对它进行赋值操作,枚举变量的存储类型同普通变量一致;
2 枚举类型的定义和结构类型一致,及可以同时定义,也可以分开定义;
例:
enum STATUS {a=0,b=1,c=2,d=3,e=5,f=8,g=100};
enum STATUS s; //分开定义;
enum STATUS {a=0,b=1,c=2,d=3,e=5,f=8,g=100} s;//枚举类型说明时定义
3 枚举元素都为常量,程序运行中,不可以对其进行修改;
4 枚举元素可以在定义时指定枚举元素的整型数值,未执行,系统则自动初始化相应值。
例:


 #include "stdio.h"
int main(){
    enum a{a1,a2,a3,a4=0,a5,a6} _a;
    enum b{b1=1,b2=3,b3,b4,b5,b6} _b;
    enum c{c1,c2,c3,c4,c5,c6} _c;
    enum d{d1=0,d2,d3,d4,d5,d6} _d;
    //枚举类型元素 初始化数值(包括系统自动初始化)
    printf("enum _a:%d: a1:%d a2:%d  a3:%d a4:%d  a5:%d  a6:%d\n",_a,a1,a2,a3,a4,a5,a6);
    printf("enum _b: b1:%d b2:%d  b3:%d b4:%d  b5:%d  b6:%d\n",b1,b2,b3,b4,b5,b6);
    printf("enum _c: c1:%d c2:%d  c3:%d c4:%d  c5:%d  c6:%d\n",c1,c2,c3,c4,c5,c6);
    printf("enum _d: d1:%d d2:%d  d3:%d d4:%d  d5:%d  d6:%d\n",d1,d2,d3,d4,d5,d6);
   
     _a =2;  //枚举类型赋值
    printf("enum _a:%d\n",_a);
    return 1;
}

[root@localhost ~]#./t
enum _a:1860763702: a1:0 a2:1 a3:2 a4:0 a5:1 a6:2
enum _b: b1:1 b2:3 b3:4 b4:5 b5:6 b6:7
enum _c: c1:0 c2:1 c3:2 c4:3 c5:4 c6:5
enum _d: d1:0 d2:1 d3:2 d4:3 d5:4 d6:5
enum _a:2

相关阅读:
linux c 何时用 . 何时使用->
变量的存储类型
结构体简介