首页 > 其他分享 > 逍遥自在学C语言 | 枚举的那些事儿

逍遥自在学C语言 | 枚举的那些事儿

时间:2023-06-08 23:22:05浏览次数:42  
标签:currentSeason 示例 逍遥自在 enum C语言 枚举 printf 常量

前言

在C语言中,枚举是一种方便组织和表示一组相关常量的工具。枚举类型有助于提高代码的可读性和可维护性。本文将介绍C语言枚举的基本概念、语法和用法,以及一些高级技巧。

一、人物简介

  • 第一位闪亮登场,有请今后会一直教我们C语言的老师 —— 自在。

  • 第二位上场的是和我们一起学习的小白程序猿 —— 逍遥。

二、基本概念

枚举类型由enum关键字引入,并由一组常量构成。每个常量都称为枚举常量,它们在枚举中按顺序自动赋予整数值。

enum Season {
    SPRING,   // 0
    SUMMER,   // 1
    AUTUMN,   // 2
    WINTER    // 3
};

在上述示例中,我们定义了一个名为Season的枚举类型,并包含四个常量:SPRINGSUMMERAUTUMNWINTER

它们的默认值分别为0、1、2和3。

三、使用枚举常量

我们可以使用枚举常量来声明变量,并为其赋予枚举中的某个值。

enum Season currentSeason = SUMMER;

在上述示例中,我们声明了一个名为currentSeason的变量,并将其赋值为SUMMER

这样,我们就可以通过变量currentSeason来引用枚举常量。

四、比较和判断枚举常量

我们可以使用相等运算符(==)来比较枚举常量之间的值是否相等。

if (currentSeason == SPRING) {
    printf("It's spring!\n");
} else if (currentSeason == SUMMER) {
    printf("It's summer!\n");
} else if (currentSeason == AUTUMN) {
    printf("It's autumn!\n");
} else if (currentSeason == WINTER) {
    printf("It's winter!\n");
}

在上述示例中,我们使用if语句根据当前季节输出相应的消息。

此外,我们还可以使用switch语句根据枚举常量执行不同的代码块。

switch (currentSeason) {
    case SPRING:
        printf("It's spring!\n");
        break;
    case SUMMER:
        printf("It's summer!\n");
        break;
    case AUTUMN:
        printf("It's autumn!\n");
        break;
    case WINTER:
        printf("It's winter!\n");
        break;
    default:
        printf("Invalid season!\n");
        break;
}

在上述示例中,根据currentSeason的值,我们执行不同的代码块。

五、自定义枚举常量的值

默认情况下,枚举常量的值是按顺序自动赋予的。但是,我们也可以显式地为枚举常量指定值。

enum Month {
    JANUARY = 1,
    FEBRUARY,
    MARCH,
    APRIL,
    MAY,
    JUNE
};

在上述示例中,我们定义了一个名为Month的枚举类型,并为JANUARY指定了值1。其余的常量依次递增。

六、枚举作为函数参数和返回值

枚举常常被用作函数的参数和返回值,以便传递和表示一组选项或状态。

enum Result {
    SUCCESS,
    FAILURE
};

enum Result performOperation() {
    // 进行操作...
    if (/* 操作成功 */) {
        return SUCCESS;
    } else {
        return FAILURE;
    }
}

在上述示例中,我们定义了一个枚举类型Result,用于表示操作的结果。函数performOperation()执行某个操作,并根据操作的成功与否返回相应的枚举常量。

七、枚举嵌套

C语言中,枚举也可以嵌套在其他结构中,以创建更复杂的数据结构。

struct Person {
    char name[20];
    enum Gender {
        MALE,
        FEMALE
    } gender;
};

在上述示例中,我们定义了一个结构体Person,其中包含一个名为gender的嵌套枚举类型Gender

小结

通过这篇文章,我们学会了

1、枚举的基本概念

2、枚举的常见用法和使用技巧

标签:currentSeason,示例,逍遥自在,enum,C语言,枚举,printf,常量
From: https://www.cnblogs.com/Wayne123/p/17467942.html

相关文章

  • C语言编程—头文件
    头文件是扩展名为.h的文件,包含了C函数声明和宏定义,被多个源文件中引用共享。有两种类型的头文件:程序员编写的头文件和编译器自带的头文件。在程序中要使用头文件,需要使用C预处理指令#include来引用它。前面我们已经看过stdio.h头文件,它是编译器自带的头文件。引用头文件......
  • c语言函数
    #include<iostream>floataverage();//主函数在前需要申明intmain(){floatx;x=average();printf("平均值为:%5.2f\n",x);return0;}floataverage(){floatx1,x2,x3,x4,x5;printf("请输入五个数:");scanf_s(&quo......
  • Java中枚举类的特殊用法-使用枚举实现单例模式和策略模式
    上面针对枚举类实现单例模式和策略模式有所涉及,下面补充。Java中使用枚举类实现单例模式为什么可以这样做?枚举类不能new,因此保证单例枚举类不能被继承类不加载时,不会实例化使用枚举类创建的单例还有一个好处,就是即使使用反射,也无法打破它的单例性质新建枚举类publicenumSingleEn......
  • C语言中的强制转换
    一、数组类型强转为结构体类型CMD    len      addr       data1Byte   2Byte    4Byte    05  f401   20000000   1112......................(共500字节)  -------串口收到......
  • 谈一谈冷门的C语言爬虫
    C语言可以用来编写爬虫程序,但是相对于其他编程语言,C语言的爬虫开发可能会更加复杂和繁琐。因为C语言本身并没有提供现成的爬虫框架和库,需要自己编写网络请求、HTML解析等功能。不过,如果你对C语言比较熟悉,也可以尝试使用C语言编写爬虫程序,这样可以更好地掌握爬虫的底层原理和实现方......
  • 谈一谈冷门的C语言爬虫
    C语言可以用来编写爬虫程序,但是相对于其他编程语言,C语言的爬虫开发可能会更加复杂和繁琐。因为C语言本身并没有提供现成的爬虫框架和库,需要自己编写网络请求、HTML解析等功能。不过,如果你对C语言比较熟悉,也可以尝试使用C语言编写爬虫程序,这样可以更好地掌握爬虫的底层原理和实现......
  • Enum01_都有常量了为何要有枚举类
    ​ 我们在不引入ENUM的情况下使用Integer(String啥的肯定也可以)定义四个不同的季节,由于这个是static和final的,肯定是能通过类OGNL直接调用且不能被改变的。publicclassSeason{/***使用Integer来定义春夏秋冬(其他类型是自然可以)*/publicst......
  • 初识C语言:从0开始,由菜鸟变大牛(完结)
    上篇内容分享了两种语句(选择语句、循环语句)、函数、数组、各种操作符,本篇文章我们再来了解关于初识C语言的内容,同样,涉及到的知识不会太复杂,废话不多说,正文开始:1.常见关键字autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatf......
  • C语言编程—预处理器
    预处理器不是编译器的组成部分,但是它是编译过程中一个单独的步骤。简言之,C预处理器只不过是一个文本替换工具而已,它们会指示编译器在实际编译之前完成所需的预处理。我们将把C预处理器(CPreprocessor)简写为CPP。所有的预处理器命令都是以井号(#)开头。它必须是第一个非空字符,为了......
  • C语言判断大小端的几种方法
    在操作系统中,经常会用到判断大小端,很多面试题中也会经常遇到,以前的时候没有总结过,这里总结一下。以后用到了就直接可以用了。所谓的大小端,大致的解释意思就是:【大端模式】CPU对操作数的存放方式是高地址存放低位,低地址存放高位。【小端模式】CPU对操作数的存放方式是高地址存......