C语言简明清晰讲解枚举
目录
- 概述
- 简单使用
- 入门
- 判断
- 自定义数值
- 一种不严格的写法
概述
一个类型,值只能是一堆值中的一个。
比如星期几,只会是星期一到星期天。
用数值表示的话就是0到6,但是0到6不太好理解。
而枚举可以用单词表示,提高了可读性。
本质上还是0到6。
简单使用
入门
新建三个变量,值分别为a b c
#include<stdio.h> enum Gender { Male, Female, Empty }; int main() { enum Gender a = Male; enum Gender b = Female; enum Gender c = Empty; printf("%d\n", a); printf("%d\n", b); printf("%d\n", c); return 0; }
效果:0 1 2
判断
作为数值,当然可以参与判断。
#include<stdio.h> enum Gender { Male, Female, Empty }; int main() { enum Gender a = Male; printf("%d\n", a == Male); return 0; }
效果:1,真。
自定义数值
默认01234…
可以自定义。
#include<stdio.h> enum Gender { Male = 2, Female = 4, Empty = 6 }; int main() { enum Gender a = Male; printf("%d\n", a); return 0; }
效果:2
一种不严格的写法
在C语言中,可以直接赋值数值。
下面这段代码没有问题:
#include<stdio.h> enum Gender { Male, Female, Empty }; int main() { enum Gender a = 0; printf("%d\n", a == Male); return 0; }
效果:
但是不建议使用。
到此这篇关于C语言简明清晰讲解枚举的文章就介绍到这了,更多相关C语言枚举内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
C语言结构体,枚举,联合体详解
目录 1.什么是结构体.枚举.联合体 2.定义结构体 2.1 包含结构体成员变量.variable 2.2 tag.结构体成员变量 2.3 用结构体声名变量 2.4 用typedef 创建新类型 2.5 两个结构体相互包含 2.6 结构体变量初始化 2.7 结构体指针 3.枚举 3.1 定义方式 3.2 为什么用枚举 3.3 枚举变量的定义 3.4 实例 3.5 枚举实际用途 4.联合体 4.1 与结构体区别 4.2 定义 总结 1.什么是结构体.枚举.联合体 结构体(struct)是由一系列具
-
C语言的位段与枚举详解
目录 1.什么是位段? 2.位段的内存分配.跨平台与使用 3.什么是枚举? 4.枚举的优点与使用 总结 1.什么是位段? 位段的声明和结构是类似的,有两个不同: ①位段的成员必须是 int.unsigned int 或signed int ②位段的成员名后边有一个冒号和一个数字 例如: struct A { //4byte=32bit int 4个字节 //开辟4个字节 int _a : 2 ;//30(分配了2字节,还剩30字节)
-
C语言数据类型枚举enum全面详解示例教程
目录 一.枚举类型的定义 二.枚举类型的使用 2.1创建变量 2.2一些优点 总结 一.枚举类型的定义 enum Day//enum Day是一种类型 { Mon,//周一到周日这些叫枚举的可能取值,也叫枚举常量 Tue, Wed, Thur, Fri, Sat, Sun, }; 上述代码定义的enum Day是一种枚举类型,{}中内容是枚举类型的可能取值,也可叫作枚举常量. 这些枚举常量都是有值的,默认从0开始,依次往后递增1,如果你愿意赋值也是可以的. 代码如下: #include<stdi
-
C语言自定义类型超详细梳理之结构体 枚举 联合体
目录 一.什么是结构体 1.结构体实现 2.匿名结构体类型 3.结构体自引用 4.结构体的内存对齐 5.结构体位段 二.什么是枚举 1.枚举类型的定义 2.枚举的优点 三.联合(共用体) 1.什么是联合(共用体) 2.联合(共用体)的定义 3.联合(共用体)的初始化 总结 一.什么是结构体 结构是一些值的集合,这些值称为成员变量.结构的每个成员可以是不同类型的变量. //结构体声明 struct tag //struct:结构体关键字,tag:标签名,合起来是结构体类型(类型名) { memb
-
C语言枚举的使用以及作用
目录 一.什么是枚举 二.枚举的用法 三.枚举有什么用,用在哪里? 四.枚举要注意的地方 一.什么是枚举 我对枚举的理解就是把一些固定的值—列举出来分别起个名字,比如说给1取个名字叫Ture,0取个名字叫False,Ture和False都是表示同一个类型的数据,比如说都是代表逻辑的对错,这里用51单片机的IE中断使能寄存器来举一个例子. 二.枚举的用法 1.直接定义枚举值,然后给普通变量赋值 2.定义一个带名称的枚举 3.定义枚举别名 #include <stdio.h> enum {
-
C语言关于自定义数据类型之枚举和联合体详解
目录 前言 枚举 枚举类型的定义 枚举类型的优点 枚举类型的使用 枚举中需要注意的点 联合体 联合体类型的定义 联合体的特点 联合体的使用 联合体存在内存对齐 结语 前言 在C语言的自定义数据类型中,除了我们最为常用的结构体之外,还有两个比较少用的自定义数据类型,分别为枚举和联合体(也可以称为共用体). 今天,我们一起看学习一下相关的知识吧! 枚举 什么是枚举? 顾名思义,就是一一列举,把所有的情况,所有的取值,一一列举出来. 在我们生活中,有不少的东西是可以全部列举出来的. 如一个星期有七天,
-
C语言中枚举与联合体的使用方法(enum union)
目录 enum的定义 enum对比#define宏常量的好处 union的定义 联合体大小的计算 联合体配合算大小端的问题 总结 enum的定义 枚举顾名思义就是一一列举,把可能的取值一一列举. 枚举的使用方式 //定义一个枚举Color的类型 enum Color // enum Color 是一个类型 { RED, //逗号结尾 GREEN, BLUE // 最后一个成员没有逗号没有分号 }; int main() { printf("%d",RED);//0 printf(&qu
-
C语言详解数据结构与算法中枚举和模拟及排序
目录 枚举 连号区间数 递增三元组 二分 双指针 前缀和 模拟 特别数的和 错误票据 排序 快速排序 归并排序 枚举 连号区间数 来源:第四届蓝桥杯省赛C++B组,第四届蓝桥杯省赛JAVAB组 小明这些天一直在思考这样一个奇怪而有趣的问题: 在 1∼N 的某个排列中有多少个连号区间呢? 这里所说的连号区间的定义是: 如果区间 [L,R] 里的所有元素(即此排列的第 L 个到第 R 个元素)递增排序后能得到一个长度为 R−L+1 的“连续”数列,则称这个区间连号区间. 当 N 很小的时候,小明可以
-
C语言简明清晰讲解枚举
目录 概述 简单使用 入门 判断 自定义数值 一种不严格的写法 概述 一个类型,值只能是一堆值中的一个. 比如星期几,只会是星期一到星期天. 用数值表示的话就是0到6,但是0到6不太好理解. 而枚举可以用单词表示,提高了可读性. 本质上还是0到6. 简单使用 入门 新建三个变量,值分别为a b c #include<stdio.h> enum Gender { Male, Female, Empty }; int main() { enum Gender a = Male; enum Gend
-
C语言简明清晰讲解结构体
目录 本质 简单使用 一些写法 我套我自己 内存对齐 举例-int char char 举例-char int char 举例-char char int 由结构体指针访问成员 本质 一些值的集合. 简单使用 #include <stdio.h> struct User { char uName[20]; char uPass[20]; }; int main() { struct User u1 = { "abc","123" }; printf(&q
-
C语言简明讲解三目运算符和逗号表达式的使用
目录 一.三目运算符 二.逗号表达式 三.小结 一.三目运算符 三目运算符( a ? b : c)可以作为逻辑运算的载体 规则:当 a 的值为真时,返回 b 的值:否则返回 c 的值 下面看一段代码: #include <stdio.h> int main() { int a = 1; int b = 2; int c = 0; c = a < b ? a : b; (a < b ? a : b) = 3; printf("%d\n", a); printf(&
-
C语言简明讲解队列的实现方法
目录 前言 队列的表示和实现 队列的概念及结构 代码实现 束语 前言 大家好啊,我又双叒叕来水博客了,道路是曲折的,前途是光明的,事物是呈螺旋式上升的,事物最终的发展结果还是我们多多少少能够决定的,好啦,吹水结束,这与这篇博客的主题并没有太多联系.关于栈和队列这一板块本来是想不写(就是想偷懒),但是想了想,觉得这样不太好,关于数据结构这一块可能会有缺失,所以最终还是决定写,必须补齐这一块,恰好最近有时间写博客,所以还是写了,这篇博客将介绍队列的知识点,理解链表那一块的操作后,栈和队列的相关操作还
-
C语言简明讲解类型转换的使用与作用
目录 一.类型之间的转换 二.强制类型转换 三.隐式类型转换 四.表达式中的隐式类型转换 五.小结 一.类型之间的转换 C语言中的数据类型可以进行转换 强制类型转换 隐式类型转换 二.强制类型转换 强制类型转换的语法 (Type)var_name; (Type)value; 强制类型转换的结果 目标类型能够容纳目标值:结果不变 目标类型不能容纳目标值:结果将产生截断 注意:不是所有的强制类型转换都能成功,当不能进行强制类型转换时,编译器将产生错误信息(比如将自定义数据类型转换成基本数据类型).
-
C语言简明讲解操作符++和--的使用方法
目录 一.++与--操作符的本质 二.++与-- 操作符使用分析 三.小结 一.++与--操作符的本质 ++ 和 -- 操作符对应两条汇编指令 前置 变量自增(减)1 取变量值 后置 取变量值 变量自增(减)1 下面看一段神奇的代码: #include <stdio.h> int main() { int i = 0; int r = 0; r = (i++) + (i++) + (i++); printf("i = %d\n", i); printf("r =
-
C语言简明讲解变量的属性
目录 一.C语言中的变量属性 二.auto 关键字 三.register 关键字 四.static 关键字 五.extern 关键字 六.小结 一.C语言中的变量属性 C语言中的变量可以有自己的属性 在定义变量的时候可以加上“属性”关键字 "属性”关键字指明变量的特有意义 语法: property type var_name; 示例: int main() { auto char i; register int j; static long k; extern double m; return
-
C语言简明讲解单引号与双引号的使用
目录 一.单引号和双引号 二.小贴士 三.程序实例分析1 四.程序实例分析2 五.容易混淆的代码 六.小结 一.单引号和双引号 C语言中的单引号用来表示字符字面量 C语言中的双引号用来表示字符串字面量 'a'表示字符字面量,在内存中占1个字节,'a'+1表示'a'的ASCII码加1,结果为'b' "a"表示字符串字面量,在内存中占2个字节,"a"+1表示指针运算,结果指向"a"结束符'\0' 下面看一段单引号和双引号本质的代码: #include
-
C语言简明讲解预编译的使用
目录 小复习 1.内置符号 2.自定义符号 3.自定义宏 4.条件编译 小复习 预处理,预编译是编译的第一步. 会有三件基本的事情发生: 引入#include 去除注释 修改#define 1.内置符号 这些符号都可以直接使用: __FILE__ 点c文件全名__LINE__ 当前行号__DATE__ 编译日期__TIME__ 编译时间 举例: #include<stdio.h> int main() {
-
C语言简明讲解归并排序的应用
目录 一.归并排序 1.1归并排序引入 1.2归并排序的概念 1.3归并排序的原理 1.4实例说明 1.5具体步骤说明 1.6代码实现 1.7性能分析 一.归并排序 1.1归并排序引入 对于堆排序来说,因为用到了完全二叉树的深度是(log2n+1)的特性,所以效率就比较高,但是堆结构的设计比较复杂,现在我们想要可以直接利用完全二叉树来排序的方法,这个方法就是归并排序. 1.2归并排序的概念 归并排序是建立在归并操作上的一种有效的排序算法,归并排序对序列的元素进行逐层折半分组,然后从最小分组开始比
随机推荐
- linux中top命令详解
- Linux 正则表达式详解
- JS 学习总结之正则表达式的懒惰性和贪婪性
- Boostrap栅格系统与自己额外定义的媒体查询的冲突问题
- dos命令大全 黑客必知的DOS命令集合
- Java游戏俄罗斯方块的实现实例
- Java中打乱一个数组的2种公平算法分享
- Windows server 2008 R2(win7)登陆sqlplus错误ORA-12560和ORA-12557的解决方法
- javascript时间戳和日期字符串相互转换代码(超简单)
- PHP判断字符串长度的两种方法很实用
- PHP使用GIFEncoder类生成gif动态滚动字幕
- 举例解析设计模式中的工厂方法模式在C++编程中的运用
- 获取当前月(季度/年)的最后一天(set相关操作及应用)
- 基于Bootstrap实现的下拉菜单手机端不能选择菜单项的原因附解决办法
- Android中Handler与Message的简单实例
- ASP.NET清空缓存时遇到的问题简析
- Android登录的简单处理
- PHP中你可能忽略的性能优化利器:生成器
- 详解JVM类加载机制及类缓存问题的处理方法
- 详解Python核心对象类型字符串