简单来说,枚举类型就是可以让我们给整数值分配有意义的名字,从而使得代码更易读、易维护
枚举类型的定义和变量的声明方式也与结构体和联合体相似 (一)枚举类型的定义👇🏻
enum 枚举名
{
成员项表列
};
(二)枚举变量的声明👇🏻
enum 枚举名 变量名
举例:我们定义一个代表颜色的枚举类型,然后创建一个枚举变量a 👇🏻
enum color
{
red=1,
yellow=2,
blue=3
};
int main()
{
enum color a;
return 0;
}
这个 {} 里面的变量red yellow blue
都有其对应的特定的,不变的整数,所以这些变量也被叫做枚举常量。
当我们引用这些变量的时候,就会输出他们所代表的值,如👇🏻
#include<stdio.h>
enum color
{
red=1,
yellow=2,
blue=3
};
int main()
{
printf("%d\n", red);
printf("%d\n", yellow);
printf("%d\n", blue);
return 0;
}
输出结果:
如果我们在创建枚举变量时,为未给成员进行初始化赋值,则C语言会自动赋值 遵循:默认从0开始,依次增1 如果只有前几个值,那么后面未被赋值的成员也会被自动赋值,遵循依次增1
例子一(不赋值)👇🏻
例子二(讲将第一个成员赋值为3,后面的不赋值)👇🏻
注意:一旦枚举类型的成员被赋值后,则变成枚举常量,不能再被修改!
同一个程序中不能定义同名的枚举类型;不同的枚举类型中,也不能存在同名的枚举成员。
以下是错误示范:
(一)定义了同名的枚举类型👇🏻
enum color
{
red,
yellow,
blue
};
enum color
{
green,
black,
white
};
(二)存在同名的枚举成员👇🏻
enum color1
{
red,
yellow,
blue
};
enum color2
{
red,
black,
white
};
⭐C语言中的枚举变量通常只能被赋值为枚举类型中定义的成员。
例如,我们给下面的枚举变量a b c
赋值👇🏻
【只能使用成员red yellow blue
】
#include<stdio.h>
enum color
{
red = 1,
yellow = 2,
blue = 3
};
int main()
{
enum color a, b, c;
a = red;
b = yellow;
c = blue;
return 0;
}
如果我们非要给枚举类型的变量赋整数值,则对枚举型的变量赋整数值时,需要进行类型转换
#include<stdio.h>
enum color
{
red = 1,
yellow = 2,
blue = 3
};
int main()
{
enum color c;
c = (enum color)10; //强制类型转换
printf("%d\n", c);
return 0;
}
输出结果:
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有