c语言枚举类型enum例子_枚举是什么意思

c语言枚举类型enum例子_枚举是什么意思在实际的编程应用中,有的变量只有几种可能的取值,譬如说一个星期的七种可能,性别的两种可能等等。C语言为这种类型的变量的定义提供了enum关键字。要使用枚举类型的变量,首先需要先定义一个枚举类型名,然后再声明该变量是枚举类型的例如:enumweekday{\\该语句定义了一个`枚举类型`MONDAY,TUSEDAY,WEDNESDAY,…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

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

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


例1:

enum WEEKDAY{   \\该语句定义了一个枚举类型
    MONDAY = 1,
    TUSEDAY,
    WEDNESDAY,
    THURSDAY,
    FRIDAY,
    SATURDAY,
    SUNDAY
};

enum WEEKDAY day;   \\该语句声明了一个枚举类型的变量

Jetbrains全家桶1年46,售后保障稳定

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

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

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

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

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

注意:

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

例2:

enum WEEKDAY{
    MONDAY = 1,
    TUSEDAY,
    WEDNESDAY,
    THURSDAY,
    FRIDAY,
    SATURDAY,
    SUNDAY
};

注意点:

  • 枚举常量之间用逗号隔开,最后一个枚举常量之后不需要逗号
  • 整个枚举类型定义语句的最后需要一个分号
  • WEEKDAY是该枚举类型的名字,这是一个可选项

1、定义枚举类型后声明枚举变量

enum WEEKDAY{
    MONDAY = 1,
    TUSEDAY,
    WEDNESDAY,
    THURSDAY,
    FRIDAY,
    SATURDAY,
    SUNDAY
};

int main(int argc, char ** argv)
{
    enum WEEKDAY day;
    day = MONDYA;

    return 0;
}
2、定义枚举类型的同时声明枚举变量

enum WEEKDAY{
    MONDAY= 1,
    TUSEDAY,
    WEDNESDAY,
    THURSDAY,
    FRIDAY,
    SATURDAY,
    SUNDAY
}day;

int main(int argc, char ** argv)
{
    day = MONDYA;

    return 0;
}
3、定义枚举类型的同时利用typedef关键字将其声明为类型别名,然后利用该类型别名声明枚举类型变量

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.net/200914.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python超链接格式_Openpyxl中的超链接样式「建议收藏」

    python超链接格式_Openpyxl中的超链接样式「建议收藏」4个答案:答案0:(得分:1)importopenpyxlfromopenpyxl.stylesimportFont,Color,colors#…#alternative1:sethyperlinkpropertytocelldeflink_1(cell,link,display=None):cell.hyperlink=linkcell.font=…

    2022年7月19日
    109
  • Java创建WebService服务及客户端实现

    Java创建WebService服务及客户端实现简介WebService是一种服务的提供方式,通过WebService,不同应用间相互间调用变的很方便,网络上有很多常用的WebService服务,如:http://developer.51cto.com/art/200908/147125.htm,不同的语言平台对WebService都有实现,Java的WebService实现,比较流行的有Axis2、Jaxws,…

    2022年7月13日
    19
  • Nmap 源代码学习四 软件简单使用[通俗易懂]

    Nmap 源代码学习四 软件简单使用

    2022年2月5日
    43
  • Latex公式换行与对齐

    Latex公式换行与对齐Latex公式换行与对齐1、应用amsmath包:\usepackage{amsmath}2、公式中用aligned:\begin{equation}\begin{aligned}……\end{aligned}\end{equation}或者直接用align:\begin{align}……\end{align}3、换行时用“\”换行符\begin{align}a=1+2+3+4+5\\=6+9\end{align}效果:4、左对齐用“&amp

    2022年6月12日
    55
  • Java中文乱码问题如何解决?

    Java中文乱码问题如何解决?中文乱码问题一、POST请求参数中文乱码二、Response获取流对象中文乱码一、POST请求参数中文乱码在输入中文或特殊字符时,POST请求参数会出现乱码,由于POST参数是在请求体中,获取POST请求参数通过流来获取,我们设置流的编码即可解决中文乱码问题。因为get方式请求参数在url中,post方式请求参数在请求体中,虽然通过getParameter方式获取参数,但内部仍然是通过流获取参数的值,需要设置流的字符集。【解决办法】:获取请求参数之前,设置流的编码re

    2022年7月8日
    42
  • pycharm激活码2022【2021.10最新】

    (pycharm激活码2022)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月29日
    77

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号