c语言枚举类型enum例子

c语言枚举类型enum例子

在实际的编程应用中,有的变量只有几种可能的取值,譬如说一个星期的七种可能,性别的两种可能等等。C语言为这种类型的变量的定义提供了enum关键字。

要使用枚举类型的变量,首先需要先定义一个枚举类型名,然后再声明该变量是枚举类型的

例1:代码语言:javascript代码运行次数:0运行复制enum WEEKDAY{ \\该语句定义了一个枚举类型

MONDAY = 1,

TUSEDAY,

WEDNESDAY,

THURSDAY,

FRIDAY,

SATURDAY,

SUNDAY

};

enum WEEKDAY day; \\该语句声明了一个枚举类型的变量 Jetbrains全家桶1年46,售后保障稳定

上述例子中的MONDAY、TUSEDAY等称为枚举元素或枚举常量(本人更倾向于称其为枚举常量,因为这样可以反映其性质),它们是用户自定义的标识符而已。

在没有显式说明的情况下,枚举类型中的第一个枚举常量的值为0,第二个为1,以此类推。如果只指定了部分枚举常量的值,那么未指定值的枚举常量的值将依着最后一个指定值向后递增(步长为1)

不同枚举类型中的枚举常量的名字必须互不相同。同一枚举类型中的不同的枚举常量可以具有相同的值

枚举类型为建立常量值与标识符之间的关联提供了一种便利的方式。相对于#define语句来说,它的优势在于常量值可以自动生成

尽管可以声明枚举类型的变量,但编译器不检查这种类型变量中存储的值是否为该枚举类型中的有效值,不过,枚举类型的变量提供这种检查

注意:不能对枚举常量进行赋值操作(定义枚举类型时除外)枚举常量和枚举变量可以用于判断语句,实际用于判断的是其中实际包含的值一个整数不能直接赋值给一个枚举变量,必须用该枚举变量所属的枚举类型进行类型强制转换才行使用常规的手段输出无法输出枚举常量所对应的字符串,因为枚举常量为整型值在使用枚举变量的时候,我们不关心其值的大小,而是其表示的状态例2:代码语言:javascript代码运行次数:0运行复制enum WEEKDAY{

MONDAY = 1,

TUSEDAY,

WEDNESDAY,

THURSDAY,

FRIDAY,

SATURDAY,

SUNDAY

};注意点:

枚举常量之间用逗号隔开,最后一个枚举常量之后不需要逗号整个枚举类型定义语句的最后需要一个分号WEEKDAY是该枚举类型的名字,这是一个可选项1、定义枚举类型后声明枚举变量代码语言:javascript代码运行次数:0运行复制enum WEEKDAY{

MONDAY = 1,

TUSEDAY,

WEDNESDAY,

THURSDAY,

FRIDAY,

SATURDAY,

SUNDAY

};

int main(int argc, char ** argv)

{

enum WEEKDAY day;

day = MONDYA;

return 0;

}2、定义枚举类型的同时声明枚举变量代码语言:javascript代码运行次数:0运行复制enum WEEKDAY{

MONDAY= 1,

TUSEDAY,

WEDNESDAY,

THURSDAY,

FRIDAY,

SATURDAY,

SUNDAY

}day;

int main(int argc, char ** argv)

{

day = MONDYA;

return 0;

}3、定义枚举类型的同时利用typedef关键字将其声明为类型别名,然后利用该类型别名声明枚举类型变量代码语言:javascript代码运行次数:0运行复制typedef enum WEEKDAY{

MONDAY = 1,

TUSEDAY,

WEDNESDAY,

THURSDAY,

FRIDAY,

SATURDAY,

SUNDAY

}WEEKDAYS;

int main(int argc, char ** argv)

{

WEEKDAYS day = MONDYA;

return 0;

}版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/200914.html原文链接:https://javaforall.cn

相关数据流

可以联机的赛车游戏大全
勤策365

可以联机的赛车游戏大全

⌚ 06-29 👁️‍🗨️ 6882
黑客是如何攻破一个网站的?
勤策365

黑客是如何攻破一个网站的?

⌚ 06-30 👁️‍🗨️ 3449
水仙在哪里平台直播(水仙现在在哪里直播)
假的365不让提款怎么办

水仙在哪里平台直播(水仙现在在哪里直播)

⌚ 07-08 👁️‍🗨️ 5021