枚举类型的作用是可以表达一个枚举类型变量的含义,比如定义一个性别的枚举类型,我们可以只让她表示“男”,“女”,“未知”
但是,需要注意的是,C语言是不严格控制枚举类型的,如下列代码,即使我们定义了枚举类型names的取值只有四种可能,我们依然可以为names定义的枚举类型变量赋其他值。同样可以通过编译并执行。
- //定义一个枚举类型 names
- enum names {
- jack,
- rose,
- tom,
- lusi
- };
- //定义枚举变量 stu1,stu2
- enum names stu1 = jack;
- enum names stu2 = tom;
- //打印枚举类型和他们的内存大小
- printf("stu1=%d,stu2=%d\n",stu1,stu2); //结果:stu1 = 0 , stu2 = 2
- printf("sizeof(stu1)=%d,sizeof(stu2)=%d\n",sizeof(stu1),sizeof(stu2)); //结果都是4
-
复制代码 另外,以上面代码为例,Jack存的值是0,rose存的值是1,以此类推,lusi存的值是4.
我们可以通过其他方法改变这些值,但是并不建议这么做:
- enum namestest {
- jack = 3,
- rose,
- tom,
- lusi
- };
- enum namestest stu3 = jack;
- enum namestest stu4 = tom;
- printf("stu1=%d,stu2=%d\n",stu3,stu4); //输出结果:3 , 5
复制代码
|
|