在这里我先祝各位大佬 <mark>元宵节快乐!</mark>

HELLO,EVERYONE!终于放学了!我又可以写文章了!

这次呢,我要说说的是 <mark>非基本数据类型</mark> —— <mark>enum(枚举)</mark>。

还是先 复习 回到上次的<mark>基本数据类型</mark> 和 <mark>非基本数据类型</mark>。

基本数据类型:

整型 <mark>int / long / long long</mark>
布尔型 <mark>bool</mark>
字符型 <mark>char</mark>
实型
→ 单精度型 / 浮点型 <mark>float</mark>
→ 双精度型 <mark>double</mark>

非基本数据类型:

数组 <mark>[ ]</mark>
指针 <mark>*</mark>
空类型 <mark>void</mark>
结构体 <mark>struct</mark>
联合体 <mark>union</mark> √
枚举 <mark>enum</mark> √
类 <mark>class</mark>

这些数据类型我还是会<mark>一 一 叙 述</mark>的!

<mark>1、enum简介:</mark>

枚举(Enum)是一种数据类型,用于定义一组命名的常量。它可以帮助提高代码的可读性和可维护性,因为它允许您为一组相关的值赋予有意义的名称。在许多编程语言中,枚举被用于定义一组固定的值,这些值在程序的不同部分可能会被多次使用。

在许多编程语言中,包括 C、C++、Java、C#、Python 等,枚举的基本概念是一致的,尽管语法和用法可能会有所不同。

在枚举中,每个常量都有一个与之关联的名称,并且这些名称在同一个枚举类型中必须是唯一的。枚举可以具有与其关联的值,但如果没有明确地指定,它们通常会<mark>从0开始自动递增</mark>。

<mark>C#</mark> 中定义一个枚举:

enum Weekday
{
   
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday
}

在这个示例中,Weekday枚举类型包含了一周中的每一天,而每个枚举常量都有一个与之关联的整数值,从0开始递增(Monday为0,Tuesday为1,以此类推)。

可以使用枚举来代替常量值,从而使代码更易读、更易于维护。例如,您可以使用枚举来代替硬编码的数字或字符串值,从而增加了代码的可读性,并且如果需要进行更改,只需更改枚举定义即可,而不需要在代码中逐个查找和修改相应的值。

<mark>C++</mark> 中定义一个枚举:

#include <iostream>

// 定义一个枚举类型 Weekday
enum Weekday {
   
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday
};

int main() {
   
    // 声明一个枚举变量
    Weekday today;

    // 给枚举变量赋值
    today = Wednesday;

    // 使用枚举值进行条件判断
    if (today == Wednesday) {
   
        std::cout << "It's Wednesday, my dudes!" << std::endl;
    } else {
   
        std::cout << "It's not Wednesday." << std::endl;
    }

    return 0;
}

在这个例子中,我们首先定义了一个名为Weekday的枚举类型,其中包含了一周中的每一天。然后在main函数中声明了一个名为today的枚举变量,并将其赋值为Wednesday。最后,我们使用条件语句检查today的值,并输出相应的消息。

这个例子展示了如何使用C++的枚举类型来提高代码的可读性,以及如何在程序中使用枚举值进行条件判断。

总之,枚举是一种在程序中定义一组命名常量的有效方式,它提高了代码的可读性和可维护性,减少了硬编码值带来的错误和混乱。

<mark>2、enum的深究(讲的东西并不多,大家可以上网去查一下):</mark>

枚举类型(enum)在C++中是一种用户定义的数据类型,用于定义一组命名的整数常量。枚举类型使代码更易读、更易维护,并提供了一种可移植的方式来定义一组相关的常量。

在C++中,枚举类型的定义形式为:

enum EnumName {
   
    Constant1,
    Constant2,
    // 可以继续定义更多的常量...
};

在这里,EnumName是枚举类型的名称,Constant1、Constant2等是枚举常量,它们在枚举类型中都有唯一的整数值,从0开始递增。

例如,以下是一个简单的枚举类型的定义:

enum Color {
   
    Red,
    Green,
    Blue
};

在这个例子中,Color是枚举类型的名称,它包含了三个枚举常量:Red、Green和Blue,它们分别对应整数值0、1和2。

<mark>3、enum的使用注意事项:</mark>

默认值: 如果没有为枚举常量指定值,它们将从0开始自动递增。您也可以显式地为枚举常量指定值,例如:

enum Weekday {
   
    Monday = 1,
    Tuesday,
    Wednesday,
    // 继续递增...
};

在这个例子中,Monday被显式地赋值为1,而后续的枚举常量将在前一个常量的值基础上递增。

<mark>①作用域:</mark> 枚举常量的作用域在整个枚举类型内部,而不仅仅是在枚举定义的范围内。这意味着您可以在程序的任何地方使用枚举常量,而不必担心命名冲突。

<mark>②枚举类型转换:</mark> 枚举类型在编译时被视为整数类型,并且可以隐式地转换为整数类型。但是,整数类型不能隐式地转换为枚举类型,需要进行显式的类型转换。

<mark>③枚举类型的大小:</mark> 枚举类型在内存中的大小取决于枚举中的常量数量。通常情况下,枚举类型的大小与它可以表示的最大值的位数相关联。

<mark>④前置声明:</mark> 如果您需要在枚举类型之前使用它,可以使用前置声明来声明枚举类型,就像声明其他自定义类型一样。

<mark>⑤建议使用枚举:</mark> 在需要一组相关的常量时,建议使用枚举类型而不是硬编码的整数值或字符串值。这样可以提高代码的可读性和可维护性。

总之,在使用枚举类型时,您应该注意这些注意事项,以确保正确地使用和理解枚举类型的行为。

<mark>完结撒花!!!</mark>