enum自学--在C语言中的应用


enum表示枚举类型,在实际运用中,一些变量的取值被限定在一定范围之内,例如一年有四个季节,一周有7天等。如果将这些变量设置为整型显然不妥当(编程或者软件可以看做是对现实事物的模拟)。为此C语言提供了一种“枚举”类型,同时java在JDK1.5之后也提供了对枚举类型的支持。在C语言中”枚举”类型是一种基本的数据类型,而不能被分解为其他数据类型。使用枚举类型需要注意一下几点:

1.  枚举类型是个常量,不是一个变量,我们不能再程序中重新赋值。

2.  枚举元素本身由系统定义了一个表示序号的值,一般从0开始

请看程序实例:

#include<stdio.h>

/*

枚举类型举例 by guancan 20141205

*/

enumseason{

Spring, Summer, Autumn, Winter

};//定义一个枚举变量

voidmain(){

enum season n1 = Spring;

enum season n2 = Summer;

enum season n3 = Autumn;

enum season n4 = Winter;

printf("%d,%d,%d,%d",n1,n2,n3,n4);

}

该实例表示枚举变量中的类型值是从0开始,我们也可以自定义,如果定义改为:

enumseason{

Spring = 2, Summer, Autumn, Winter

};

那么结果就成了2,3,4,5

如果改为

enumseason{

Spring , Summer = 4, Autumn, Winter

};

那么结果为0,4,5,6,

总结:enum中变量值从0开始计数,逐个增加,如果自定义,那么从自定义的变量开始逐个递增来进行计数。

3.  我们可以把枚举值赋给枚举变量,我们也以把元素的数值赋给枚举变量,如

#include<stdio.h>

/*

枚举类型举例 by guancan 20141205

*/

enumseason{

Spring , Summer = 4, Autumn, Winter

};//定义一个枚举变量

voidmain(){

/*enum season n1 = Spring;

enum season n2 = Summer;

enum season n3 = Autumn;

enum season n4 = Winter;*/

enum season n1 = 6;

enum season n2 = 8;

enum season n3 = 2;

enum season n4 = 3;

printf("%d,%d,%d,%d",n1,n2,n3,n4);

}

注:有的网上文章说这种定义是不正确的,但是经过验证也是可以运行的

枚举类型主要用来判断,即判断用户输入是不是符合条件,最多的使用switch语句,实例代码如下:

#include<stdio.h>

/*

枚举类型举例 by guancan 20141205

*/

enum season{

Spring, Summer, Autumn, Winter

};//定义一个枚举变量

void main(){

inti ;

printf("请输入:\n");

scanf_s("%d",&i);

switch(i){

           caseSpring:

                    printf("现在是春天");

                    break;

           caseSummer:

                    printf("现在是夏天");

                    break;

           caseAutumn:

                    printf("现在是秋天");

                    break;

           caseWinter:

                    printf("现在是冬天");

                    break;

           default:

                    printf("输入错误");

                    break;

}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值