【C语言进阶】枚举

1、定义:

枚举就是一一例举,比如性别有:男,女,保密,三原色有:红,绿,蓝三种,将这些可能取值放入枚举类型中

enum Sex//枚举类型
{
    male,
    female, // 枚举的可能取值
    secret
};

enum Color//枚举类型
{
    red,
    green, // 枚举的可能取值
    blue
};

2、枚举的理解:

int main()
{
    enum Sex s1= male;
    s1 = female;//也可以改变变量的值
    return 0;
}
【1】枚举常量默认值是从0开始的:
【2】然而也可以改变其中的值,虽然是枚举常量,但也是有一个初始值的

1、若改变的是第一个数据,则从第一个数据开始依次+1

2、若改变的不是第一个数据,则第一个数据从0开始往后+1,后面的数据从改变数据开始向后依次+1

情形1:

情形2:

3、枚举的优点

【1】增加了代码的可读性和可维护性

在三字棋的实现程序中,我们可以通过枚举常量替换要选择的数字,增加可读性

//test.c
#include"Contact.h"
void menu()
{
    printf("-----------------------------\n");
    printf("-----1.Delect  2.Search -----\n");
    printf("-----3.Modify  4.Show   -----\n");
    printf("-----5.Add     0.exit   -----\n");
    printf("-----------------------------\n");
}
enum Con
{
        Exit,
        delect,
        search,
        modify,
        show,
        add

};
int main()
{
    int input = 0;
    Node pc;
    Init(&pc);
    //加载通讯录信息
    loadContact(&pc);
    do
    {
        menu();
        
        printf("请输入选项->");
        scanf("%d", &input);
        switch (input)
        {
        case delect:
            Delect(&pc);
            break;
        case search:
            Search(&pc);
            break;
        case modify:
            Modify(&pc);
            break;
        case show:
            Show(&pc);
            break;
        case add:
            Add(&pc);
            break;
        case Exit:
            saveContact(&pc);
            printf("退出程序\n");
            break;
        default:
            printf("选择错误,请重新选择\n");
        }
    } while (input);
    return 0;
}

【2】和#define定义的标识符相比,有类型检查,更为严谨

这两种写法都是可行的,但用枚举来写都有类型(枚举类型),会有类型检查;而用#define定义的没有类型,直接进行替换,因此没有类型检查

【3】可防止命名污染

枚举常量可以整体定义

【4】便于调试

枚举可通过调试观察

【5】方便使用,一次可以定义多个常量

4、枚举的使用

enum Sex
{
    male=3, 
    female=5, 
    secret=9
};
int main()
{
    enum Sex s = female;
    //用枚举常量给枚举变量赋值才不会出现类型差异
    s = male;
    return 0;
}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
C语言进阶高级编程PDF》是一本以C语言为主题的进阶级别编程书籍,旨在帮助读者提升C语言编程水平并掌握更高级的编程技巧和思维方式。 该PDF书籍的内容包括但不限于以下几个方面: 1. 数据结构与算法:介绍了常用数据结构(如链表、栈、队列、树等)的实现原理和使用方法,以及一些常见算法(如排序、查找等)的实现。 2. 指针与内存管理:探讨了指针的概念、指针和数组、指针和函数等相关内容,以及如何进行动态内存管理和资源释放。 3. 文件操作:介绍了C语言中对文件的读写操作方法,包括文件的打开、写入、读取和关闭等。 4. 高级函数和宏:介绍了C语言中的函数指针、回调函数、宏定义等高级编程技巧,以及如何利用宏定义提高代码的可读性和可维护性。 5. 库函数和系统调用:详细介绍了C语言标准库函数和一些系统调用的使用方法,如字符串处理函数、数学函数、时间函数等。 6. 多线程和进程:探讨了C语言中多线程和进程的概念和使用方法,包括线程的创建与同步、进程的创建与间通信等。 通过阅读《C语言进阶高级编程PDF》,读者可以拓宽自己的C语言知识面,学习更高级和更复杂的编程技巧,提升自己在C语言编程方面的能力和应用水平。无论是对于初学者还是有一定经验的C语言开发者来说,这本书都是一本很有价的参考资料。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伱恏呀呀呀呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值