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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 服务器国产linux操作系统,国产linux操作系统适于做服务器系统的有哪些[通俗易懂]

    服务器国产linux操作系统,国产linux操作系统适于做服务器系统的有哪些[通俗易懂]如果是新人的话,首先软件的依赖问题足够让你头疼半天的了。推荐新人使用ubuntu、deepin这些比较容易入手的系统开始学习。另外,Linux不是一个系统,而是一个系统内核。在这个内核的基础上加上各种需要的部分,比如GUI。而整合出来的发行版本才可以称之为系统,我之前提到的Ubuntu、Deepin就是发行版本之一。真的要介绍起来,恐怕要说好多也说不完,毕竟是一个系统嘛,从核心到桌面呈现出来的东西…

    2022年5月17日
  • git切换到指定远程分支

    git切换到指定远程分支我们在使用git进行开发的时候经常会遇到需要切换远程分支并且提交到远程指定分支的情况,现在记录下操作步骤。查看远程所有分支$gitbranch-agitbranch不带参数,列出本地已经存在的分支,并且在当前分支的前面用*标记,加上-a参数可以查看所有分支列表,包括本地和远程,远程分支一般会用红色字体标记出来*devmasterremote…

    2022年4月13日
  • Tomcat配置域名和虚拟文件夹[通俗易懂]

    Tomcat配置域名和虚拟文件夹

    2022年2月5日
  • 微信公众号开发-超级简单[通俗易懂]

    微信公众号开发-超级简单[通俗易懂]1自动回复功能【图片模糊的双击图片,就清晰了】公众号注册网上一大把,搜下就可以了这个功能就是别人给公众号发什么消息,就返回指定内容关键词回复:输入关键词,返回指定内容收到消息回复:当你不是输入关键词时,自动发送当前消息,如果输入的是关键词,就返回关键词所指定的内容被关注回复:当公众号被关注时,自动给用户发的消息1案例,添加关键…

    2022年5月12日
  • 基于LM331的电压-频率转换电路详细介绍[通俗易懂]

    基于LM331的电压-频率转换电路详细介绍[通俗易懂]目录1.LM331简介2.引脚分布与功能3.LM331的功能框图4.V/F转换的工作原理5.LM331的V/F转换电路1.LM331简介LM331是由美国NS公司(已被TI公司收购)生产的高精度频率-电压转换芯片,可以用于AD转换、频率-电压转换、电压-频率转换和转速测量等。当用作频率-电压转换时输出频率与输入电压成正比例关系,线性失真最大为0.01%。动态范围广,最大可达100dB;温度稳定性高,温度系数为±50ppm/℃;工作范围广(1Hz-100kHz);外.

    2022年5月27日
  • 金蝶显示服务器异常,金蝶迷你版登录提示云服务器异常

    金蝶迷你版登录提示云服务器异常内容精选换一换如果您购买了ECS,而没有对ECS进行主机安全防护,那么您主机将面临账户爆破、异常登录、恶意攻击等安全威胁。购买ECS,勾选开通主机安全,HSS基础版(按需计费)免费赠送。HSS可以帮助您全面识别并管理主机中的信息资产,实时监测主机中的风险并阻止非法入侵行为,帮助企业构建服务器安全体系,降低当前服务器面临的主要安全风险。基础版(按需计费)区块链管理页面…

    2022年4月9日

发表回复

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

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