C语言中枚举类型enum

 当未对enum中枚举值进行赋值时,默认从0开始逐渐+1

#include <stdio.h>

enum MyEnum
{
	a,//0
	b,//1
	c,//2
	d //3
};

int main()
{
	MyEnum i = d;
	printf("i = %d\n",i);//3
	printf("%d\n", a);//0
	printf("%d\n", b);//1
	printf("%d\n", c);//2
	printf("%d\n", d);//3
    return 0;
}

当对enum中的枚举值进行赋值后

情况1:

#include <stdio.h>

enum MyEnum
{
	a=2,
	b,//3
	c,//4
	d //5
};

int main()
{
	MyEnum i = d;
	printf("i = %d\n",i);//5
	printf("%d\n", a);//2
	printf("%d\n", b);//3
	printf("%d\n", c);//4
	printf("%d\n", d);//5
    return 0;
}

情况2:

#include <stdio.h>

enum MyEnum
{
	a,//0
	b=2,//2
	c,//3
	d //4
};

int main()
{
	MyEnum i = d;
	printf("i = %d\n",i);//4
	printf("%d\n", a);//0
	printf("%d\n", b);//2
	printf("%d\n", c);//3
	printf("%d\n", d);//4
    return 0;
}

情况3:

#include <stdio.h>

enum MyEnum
{
	a=2,
	b=5,
	c,//6
	d //7
};

int main()
{
	MyEnum i = d;
	printf("i = %d\n",i);//7
	printf("%d\n", a);//2
	printf("%d\n", b);//5
	printf("%d\n", c);//6
	printf("%d\n", d);//7
    return 0;
}

可见:

1、当首位枚举值未进行赋值默认为0

2、若本位枚举值未被赋值,则值为上位枚举值加一

 

Tip:

1、enum中的值不能写为常量,即

enum MyEnum
{
	1,
	2,
	3
};

 

2、枚举值是常量,只能在定义过程中赋值

#include <stdio.h>

enum MyEnum
{
	a,//0
	b,//1
	c,//2
	d //3
};

int main()
{
	MyEnum i = d;
    d = 1;//此处将报错,d为常量不能再次赋值。
	printf("i = %d\n",i);//3
	printf("%d\n", a);//0
	printf("%d\n", b);//1
	printf("%d\n", c);//2
	printf("%d\n", d);//3
    return 0;
}

 

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dak2n

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值