广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言数据类型枚举enum全面详解示例教程
  • 435
分享到

C语言数据类型枚举enum全面详解示例教程

2024-04-02 19:04:59 435人浏览 泡泡鱼
摘要

目录一、枚举类型的定义二、枚举类型的使用2.1创建变量2.2一些优点总结一、枚举类型的定义 enum Day//enum Day是一种类型 { Mon,//周一到周日这些叫枚举

一、枚举类型的定义


enum Day//enum Day是一种类型
{
	Mon,//周一到周日这些叫枚举的可能取值,也叫枚举常量
	Tue,
	Wed,
	Thur,
	Fri,
	Sat,
	Sun,
};

上述代码定义的enum Day是一种枚举类型,{}中内容是枚举类型的可能取值,也可叫作枚举常量。
这些枚举常量都是有值的,默认从0开始,依次往后递增1,如果你愿意赋值也是可以的。

代码如下:


#include<stdio.h>
enum Color//enum Color是一种类型
{
	red,
	green,
	blue
};
int main()
{
	printf("%d\n", red);
	printf("%d\n", green);
	printf("%d\n", blue);
}

不赋初值打印0, 1,2

在这里插入图片描述


#include<stdio.h>
enum Color//enum Color是一种类型
{
	red=2,
	green,
	blue=6
};
int main()
{
	printf("%d\n", red);
	printf("%d\n", green);
	printf("%d\n", blue);
}

赋初值后打印初值内容,如果你有一个没有赋值,会紧接上一个赋值内容+1
这里green并没有赋值,但我们知道red是2,按照枚举规则,green会在red的基础上加1变成3,注意,blue是有赋值的,所以blue不需要在green的基础上加1,blue就是6

在这里插入图片描述

注意:因为是枚举{}内的叫作枚举常量,常量是不能改的,比如你在main函数里进行赋值操作,red=9;这个铁铁的会报错,一定要区分枚举初始化和赋值的区别。

二、枚举类型的使用

2.1创建变量

我们前面说过,enum Day、enum Color这种叫作枚举类型,既然它是类型,它就可以创建变量,

代码如下:


#include<stdio.h>
enum Color//enum Color是一种类型
{
	red,
	green,
	blue
};
int main()
{
	enum Color a = 1;
	enum Color b = green;
}

我们用枚举类型创建了变量a和b,这里需要注意的是,把1赋给a,在C语言环境下编译器不会报错,但c++下就会出现问题,编译器会认为1是一个整形,你赋给一个枚举类型显然是有问题的。所以我们这里最好把枚举可能取值赋给枚举变量。

2.2一些优点

到这里大家可能会有一些疑惑,我们可以用#define来定义常量,为什么要用枚举呢?我们来看一下它们的区别:

代码如下(示例):


#define red 2
#define green 4
#define blue 8

enum Color
{
	Red,
	Green,
	Blue
};

首先由2.1知,c++环境下,枚举类型会对其他类型的赋值进行警告,而#define定义的常量是没有类型的;

第二就是防止命名污染,举个栗子:#define red 2,这是全局范围命名red为2,那假如你其他地方用到2这个数字,到时候到底是2本身还是red的意思?而枚举定义的red是枚举类型的一个可能取值,不会影响到其他数据;

第三,枚举是可以调试的,调试的过程中你大可输入枚举类型创建的变量,但是#define red 2这种,red如果在代码中会被自动替换为2,你无法用red进行监视
第四,就是可以一次定义多个枚举常量

总结

今天我们学完了枚举的相关定义,枚举类型的使用以及枚举相对于#define定义的区别,下一期笔者还会继续更新C语言联合(共用体相关知识),期待你的关注,预祝读者学习愉快!更多关于C语言enum枚举数据类型的资料请关注编程网其它相关文章!

--结束END--

本文标题: C语言数据类型枚举enum全面详解示例教程

本文链接: https://www.lsjlt.com/news/155199.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言数据类型枚举enum全面详解示例教程
    目录一、枚举类型的定义二、枚举类型的使用2.1创建变量2.2一些优点总结一、枚举类型的定义 enum Day//enum Day是一种类型 { Mon,//周一到周日这些叫枚举...
    99+
    2022-11-12
  • C语言自定义数据类型的结构体、枚举和联合详解
    结构体基础知识 首先结构体的出现是因为我们使用C语言的基本类型无法满足我们的需求,比如我们要描述一本书,就需要书名,作者,价格,出版社等等一系列的属性,无疑C语言的基本数据类型无法解...
    99+
    2022-11-12
  • C语言关于自定义数据类型之枚举和联合体详解
    目录前言枚举枚举类型的定义枚举类型的优点枚举类型的使用枚举中需要注意的点联合体联合体类型的定义联合体的特点联合体的使用联合体存在内存对齐结语前言 在C语言的自定义数据类型中,除了我们...
    99+
    2022-11-12
  • MySql数据类型教程示例详解
    目录1.简要概述2. MySQL数据类型详解1) 字符串类型2) 整数类型3)浮点数类型4)日期/时间类型1.简要概述 为什么要开通MySQL这个学习板块呢?因为这是一名数据分析师必...
    99+
    2022-11-12
  • C语言数据结构线性表教程示例详解
    目录线性表顺序表线性表 数据结构里我们时常看到什么什么表,线性表是最基本、最简单、也是最常用的一种数据结构,其他各种表的万恶之源就是这个线性表,他是个啥其实顾名思义: 一个线性表是n...
    99+
    2022-11-13
  • C语言编程数据结构栈与队列的全面讲解示例教程
    目录一、栈的表示和实现1栈的概念和结构2栈的初始化3压栈(栈顶插入一个数据)4出栈(栈顶删除一个数据)5取栈顶元素6取栈顶元素7判断栈是否为空二、队列的表示和实现1队列的概念及结构2...
    99+
    2022-11-12
  • MySQL教程DML数据操纵语言示例详解
    目录1.数据操纵语言(DML)2.增添数据(insert)3.复制已有表,生成新表1)复制已有表的结构和数据。2)只复制已有表的结构(得到的是一个空结构表)。3)在2的基础上,向空结...
    99+
    2022-11-12
  • MySQL教程数据定义语言DDL示例详解
    目录1.SQL语言的基本功能介绍2.数据定义语言的用途3.数据库的创建和销毁4.数据库表的操作(所有演示都以student表为例)1)创建表2)修改表3)销毁表如果你是刚刚学习MyS...
    99+
    2022-11-12
  • C语言函数基础教程分类自定义参数及调用示例详解
    目录1.  函数是什么?2.  C语言中函数的分类2.1 库函数2.1.1 为什么要有库函数2.1.2 什么是库函数2.1.3 主函数只能是main()吗2.1.4常见的库函数2.2...
    99+
    2022-11-12
  • java编程数据类型全面详解教程新手必入
    目录前言变量和类型1 整形int2 长整形long3 双精度浮点型(重点)4 单精度浮点型5 字符型6 字节类型7 短整型8 布尔类型9 字符串类型(重点)10 变量的作用域11 变...
    99+
    2022-11-12
  • C语言数据结构单链表接口函数全面讲解教程
    目录前言一、链表的概念及结构1.概念二、链表的使用1.遍历整个链表2.尾插3.头插4.头删5.尾删6.任意位置插入数据7.任意位置删除数据后记前言 上一期数据结构专栏我们学习了顺序表...
    99+
    2022-11-12
  • C语言数据结构顺序表中的增删改(尾插尾删)教程示例详解
    目录初始化尾插格局打开尾删初始化 在初步认识顺序表这一结构后,我们就可以继续深入探究这是我之前在.h文件中创建的结构体 typedef int type; typedef struc...
    99+
    2022-11-13
  • C语言数据结构顺序表中的增删改(头插头删)教程示例详解
    目录头插操作头删操作小结头插操作 继上一章内容(C语言数据结构顺序表中的增删改教程示例详解),继续讲讲顺序表的基础操作。 和尾插不一样,尾插出手阔绰直接的开空间,咱头插能开吗?好像没...
    99+
    2022-11-13
  • C语言编程数据结构带头双向循环链表全面详解
    目录前言一、什么是带头循环双向链表二、链表初始化三、链表接口函数1.尾插2.头插3.头删4.尾删5.任意位置插入数据6.任意位置删除数据四、打印链表总结前言 上一篇数据结构专栏:C语...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作