前言 本文介绍自定义类型中的枚举 一、枚举 枚举,通俗来讲就是一一列举 要注意枚举的枚举常量是有限个数 例如,三原色:红黄蓝;性别:男、女、保密;…… 二、定义与声明 #define _CRT_SECURE_NO_WARNINGS..., 一般默认第一个枚举常量的值是0,后面的每一个枚举常量的值都是给前一个的值加一; 如果给第一个枚举常量进行赋值,则后面的枚举常量也会随之变化,规则也是加一。...三、枚举的优点 1.增加了代码的可读性和可维护性 例如:之前编写的小游戏主菜单就可以用枚举来将switch选择中的0、1、2进行替换,更方便阅读。...,因此不能对宏定义进行调试,而枚举可以被调试】 ②枚举类型由类型检查更加严谨(C语言中体现不多,但是C++会体现); 【只能拿枚举常量给枚举变量赋值才不会出现类型差异】 ③使用更方便,一次可以定义多个变量...---- 总结 本文主要介绍了自定义类型中的结构体类型的相关知识,希望这篇文章对你理解结构体有所帮助。
宏定义 在c语言程序编译之前处理的内容。 一般形式:#define 标识符 字符串 宏定义 文件包含 条件编译 1.不带参数的宏定义。...PI*2*r; printf("C=%10.3f\n",c); return 0; } 2.在定义宏的时候,可以使用之前定义过的宏定义。...带参数的宏定义不仅对字符串进行替换,还要对参数进行替换。...n",a.ch); printf("%f\n",a.f); return 0; } 枚举类型 如果一个变量只有几种可能的值,则可以定义枚举类型。...enum--->常量整数 定义一个枚举类型,枚举类型种的元素,默认是从0开始的。
一、联合体 1.1 联合体类型的声明 像结构体⼀样,联合体也是由⼀个或者多个成员构成,这些成员可以是不同的类型。 声明方式如下图: 那联合体和结构体究竟有什么区别呢??...2、 和#define定义的标识符⽐较枚举有类型检查,更加严谨。...#define定义的标识符是不过是一个符号,而枚举是一种类型,有类型检查写代码会更加严谨 3、 便于调试,预处理阶段会删除 #define 定义的符号 枚举类型在调试的时候会显示出成员名,但是#define...、枚举常量是遵循作⽤域规则的,枚举声明在函数内,只能在函数内使⽤ 枚举有作用域的概念,在一个函数内部使用,出了函数就不能用了,但是#define定义的标识符没有作用域概念,他是一个全局都可以使用的常量。...2.3 枚举类型的使用 使用方法:使⽤枚举常量给枚举变量赋值 那是否可以拿整数给枚举变量赋值呢? 在C语⾔中是可以的,但是在C++是不⾏的,C++的类型检查⽐ 较严格。
,如果这个数组里保存的数据比较复杂,那么这种硬编码的下标方式非常的危险。...如下“` static char* language_type_data[] = { "Chinese", "German", "American" }; 这里定义了一个字符指针型数组,用来保存语言类型...,如下顶一个了一个枚举类型,用来作为访问数组的脚标。...这样写可读性很高,而且后期可以继续添加数组的成员,枚举的成员,且代码可以用循环判断来写,这样以后增加新成员只需要在枚举和数组上增加变量既可。但这段代码也有隐藏的问题。...为了避免这种隐患可以在定义数组时候使用枚举作为数组的下标,这样即使数据输入混乱,但是只要数组定义时候枚举下标定义和数组成员可以对应正确就可以避免这种错误。
#include //联合类型的声明 union Un { char c; int i; }; int main() { //联合变量的定义 union Un un = {...main() { //联合变量的定义 union Un un = { 0 }; // 下⾯输出的结果是⼀样的吗?...//联合变量的定义 union Un un = { 0 }; un.i = 0x11223344; un.c = 0x55; printf("%x\n", un.i); return 0;...我们可以使用 #define 定义常量,为什么非要使用枚举? 枚举的优点: 1. 增加代码的可读性和可维护性; 2. 和#define定义的标识符⽐较枚举有类型检查,更加严谨; 3....便于调试,预处理阶段会删除 #define 定义的符号; 4. 使⽤⽅便,⼀次可以定义多个常量; 5. 枚举常量是遵循作⽤域规则的,枚举声明在函数内,只能在函数内使⽤。
C语言枚举简述 在C语言中,如果一个变量只有几种可能的值,则可以定义为枚举类型,所谓“枚举”就是指把可能的值一一列举出来,变量的值只限于列举出来的值的范围内。...一般形式 enum[枚举名]{枚举元素列表} 其中枚举名应遵循标识符的命名规则。 C语言编译对枚举类型的枚举元素按常量处理,故称枚举常量。...不要因为他们是标识符而把他们看作变量,不能对他们赋值,但枚举元素可以用来判断比较。 每一个枚举元素都代表一个整数,C语言编译按定义时的顺序默认它们的值为0,1,2,3,4,5……。...以上,如果你看了觉得对你有所帮助,就给小林点个赞,分享给身边的人叭,这样小林也有更新下去的动力,跪谢各位父老乡亲啦~ C语言学习路线 C语言开发工具 VC6.0、Devc++、VS2019使用教程...100道C语言源码案例请去公众号:C语言入门到精通
在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从C语言小白进阶到高手,需要经历的是日积月累的学习。 那么如何学习呢?当然是每天都练习一道C语言题目!! ? 作者 闫小林 白天搬砖,晚上做梦。...C语言枚举简述 在C语言中,如果一个变量只有几种可能的值,则可以定义为枚举类型,所谓“枚举”就是指把可能的值一一列举出来,变量的值只限于列举出来的值的范围内。...一般形式 enum[枚举名]{枚举元素列表} 其中枚举名应遵循标识符的命名规则。 C语言编译对枚举类型的枚举元素按常量处理,故称枚举常量。...不要因为他们是标识符而把他们看作变量,不能对他们赋值,但枚举元素可以用来判断比较。 每一个枚举元素都代表一个整数,C语言编译按定义时的顺序默认它们的值为0,1,2,3,4,5……。...C语言枚举输出对应的星期 #include int main() { //PS:外国人习惯从0开始 enum Week{ Monday=0, Tuesday=1, Wednesday
其可以与typedef来进行类比进行理解(可查看【C语言笔记】define与typedef的区别?)。除此之外,其还可以与枚举enum进行类比。 二、什么是枚举 从字面理解,就是一一列举的意思。...DAY是枚举名,可有可无,这个名字是自己定义的;MON=1, TUE, WED, THU, FRI, SAT, SUN是枚举成员。...枚举成员的值是根据前一个成员的值递增1,即上面枚举定义等价于: enum DAY { MON=1, TUE=2, WED=3, THU=4, FRI=5, SAT=6, SUN=7 }; 若上述定义中第一个成员...若其他成员赋了初值,也是遵循“枚举成员的值是根据前一个成员的值递增1”这一规则,如: enum DAY { A,B,C=100,D,F=200,G }; 此处 A=0 B=1 C=100 D=101...虽然更简洁了,但是因为没有了名字,后面就不能用该枚举定义新的变量。
C语言中的枚举类型常年跑龙套当配角,不受待见,这当然是有其个人原因的。今天来个小知识,看看枚举为什么那么衰,也顺便看看怎么用。 我们先来回忆一下为什么需要枚举,枚举究竟是个什么东东?...indigo, purple}; enum spectrum color; 注意到上面两行代码,第一行是所谓的枚举类型定义及其常量列表,实际上就定义了枚举变量的有效范围,从red(即1)开始,到purple...第二,使用单词而不是数字,提高程序的可读性。 这么看来,枚举是一种挺好玩也挺有用的东西,但是在C语言中怎么就不受待见了呢?...原因是C语言只提供了一种阉割版的枚举,以上两大目的在C中实质上都是没有实现的,也就是说,在C语言中,实际情况是这样的: color = blue; // 正确,此时color就是5 color = 5;...你看明白了吧,C语言中的所谓枚举其实就是个坑爹货,其实就是彻头彻尾的整型数据而已。
前言 在之前的博客中介绍了自定义类型中的结构体,有想了解的可以点这个链接:link 今天来分享另外两种类型:联合和枚举。 2....我们可以使用 #define 定义常量,为什么非要使用枚举?...枚举的优点: 增加代码的可读性和可维护性 和#define定义的标识符比较枚举有类型检查,更加严谨。...便于调试,预处理阶段会删除 #define 定义的符号 使用方便,一次可以定义多个常量 枚举常量是遵循作用域规则的,枚举声明在函数内,只能在函数内使用 举个例子:实现一个简单计算器 我们就能将加减乘除设置成枚举类型...在C语言中是可以的,但是C++是不行的,C++的类型检查比较严格。 有错误请指出,大家一起进步!
枚举 枚举,也就是列举。现实生活中有很多这种可以列举出来的事物,比如星期一星期二这样的有限的天数,性别的种类,月份等等。...枚举类型的定义 以下几个为枚举类型的定义演示: enum day//星期 { Mon, Tues, Wed, Thur, Fri, Sat, Sun }; enum gender//性别...{ Example1,//0 Example2 = 4,//4后面的值依次递增 Example3,//5 Example4,//6 Example5,//7 }; 枚举的优点 对于以上定义,...枚举的优点: 增加代码可读性和可维护性。 和#define定义的标识符相比,枚举有类型检查,更严谨。 防止命名污染(封装)。 便于调试。 使用方便,一次可以定义多个常量。...return 0; } 结语 自定义类型第二部分到这里就结束了,非常感谢各位读者能读完这篇文章,如果你觉得做的还不错的话,可以点赞收藏分享,让更多的朋友知道。
一,什么是枚举类型 简单来说,枚举类型就是可以让我们给整数值分配有意义的名字,从而使得代码更易读、易维护 二,枚举类型的定义和变量的声明 1,如何定义和声明 枚举类型的定义和变量的声明方式也与结构体和联合体相似...(一)枚举类型的定义 enum 枚举名 { 成员项表列 }; (二)枚举变量的声明 enum 枚举名 变量名 举例:我们定义一个代表颜色的枚举类型,然后创建一个枚举变量a enum color...如果我们在创建枚举变量时,为未给成员进行初始化赋值,则C语言会自动赋值 遵循:默认从0开始,依次增1 如果只有前几个值,那么后面未被赋值的成员也会被自动赋值,遵循依次增1 例子一(不赋值)...3,命名注意事项 同一个程序中不能定义同名的枚举类型;不同的枚举类型中,也不能存在同名的枚举成员。...⭐C语言中的枚举变量通常只能被赋值为枚举类型中定义的成员。
// 联合体的声明 union Un { char c1; int i; }; #include int main() { union Un u = { 0 }; // 联合变量的定义...: 增加代码的可读性和可维护性 和 #define 定义的标识符比较枚举有类型检查,更加严谨。...便于调试,预处理阶段会删除 #define 定义的符号 使用方便,一次可以定义多个常量 枚举常量是遵循作用域规则的,枚举声明在函数内,只能在函数内使用 【示例】:计算器 enum Option { EXIT...注意:C语言中可以利用整数给枚举变量赋值,但是C++不可以,这是因为C++的类型检查比较严格。...// enum Color color = RED; // TRUE enum Color color = 0; return 0; } enum Color color = 0; 这一句虽然在C语言中不会报错
3、枚举的优点 4、枚举的使用 三、联合 1、什么是联合 2、联合的声明 3、联合的特点 4、联合大小的计算 5、利用联合判断大小端 前言 C语言的数据类型包括基本类型(内置类型)、构造类型(自定义类型...3、结构体变量的定义和初始化 结构体定义变量一共有两种方式,一种是在进行结构体声明的同时定义结构体变量,另一种是利用结构体类型来定义结构体变量。...即位段中的成员在内存中从左向右分配,还是从右向左分配呢?这也是C语言标准未定义的; 所以我们说,位段涉及很多不确定因素,是不跨平台的,注重可移植的程序应该避免使用位段。...3、枚举的优点 我们知道,在C语言中我们可以利用 #define 来定义常量,那为什么还要单独设计出一个枚举类型来定义枚举常量呢?...,更加严谨:在使用像C++这种语法检查较为严格的编程语言时,枚举变量必须用枚举常量来赋值,而不能使用普查常量来赋值; 防止了命名污染(封装); 便于调试 :用 #define 定义的常量在程序的预处理阶段就会被替换掉
2.结构的自引用 正确自引用方式: struct Node { int data; struct Node* next; }; 特殊写法 typedef struct Node { int data...位段的空间上是按照需要以4个字节( int )或者1个字节( char )的方式来开辟的。 3. 位段涉及很多不确定因素,位段是不跨平台的,注重可移植的程序应该避免使用位段。...这些可能取值都是有值的,默认从0开始,一次递增1,当然在定义的时候也可以赋初值 但是它的值是固定的不能更改的 2.枚举的优点 为什么使用枚举?...我们可以使用 #define 定义常量,为什么非要使用枚举? 枚举的优点: 1. 增加代码的可读性和可维护性 2. 和#define定义的标识符比较枚举有类型检查,更加严谨。 3....使用方便,一次可以定义多个常量 3.枚举的使用 只能拿枚举常量给枚举变量赋值,才不会出现类型的差异。
01枚举 1、如果一个变量只有几种可能的值,则可以定义为枚举类型,所谓“枚举”就是指把可能的值一一列举出来,变量的值只限于列举出来的值的范围内。...2、枚举变量和其他数值型量不同,它们的值只限于花括号中指定的值之一。 3、枚举常量是由程序设计者命名的,用什么名字代表什么含义,完全由程序员根据自己的需要而定,并在程序中作相应处理。...4、一般形式 enum[枚举名]{枚举元素列表},其中枚举名应遵循标识符的命名规则。 5、C编译对枚举类型的枚举元素按常量处理,故称枚举常量。不要因为他们是标识符而把他们看作变量,不能对他们赋值。...6、每一个枚举元素都代表一个整数,C语言编译按定义时的顺序默认它们的值为0,1,2,3,4,5……。 7、枚举元素可以用来判断比较。...C语言 | 逆序输出10个数 更多案例可以go公众号:C语言入门到精通
)); return 0; } 定义联合体我们用的是union,定义格式与结构体相差不多,大括号里边是成员变量 输出结果: 按照结构体的标准来说,这里应该是8,但为什么会是4呢?...1、枚举的声明 枚举就是一一列举的意思,枚举用enum来定义,定义方法也是类似结构体与联合体的方式 enum Day//星期 { Mon, Tues, Wed, Thur, Fri, Sat...①增强代码的可读与可维护性 ②和#define相比枚举有类型检查,更加安全严谨 ③便于调试,在预处理阶段,会删除#define定义的符号,直接用所替换的值替换,导致预处理与真实代码不统一,无法更好地调试...④使用方便,一次可以定义多个常量 ⑤枚举遵循作用域规则,枚举声明在函数内,只能在函数内使用 3、枚举类型的使用 enum Day { Mon, Tues, Wed, Thur, Fri,...Sat, Sun }; enum Day today = Mon; 使用枚举常量为枚举变量赋值,在C语言中可以用整数来给枚举变量赋值,但在C++中不可以 今日分享就到这里了
在ANSI的标准确立后,C语言的规范在一段时间内没有大的变动,然而C++在自己的标准化创建过程中继续发展壮大。...《标准修正案一》在1994年为C语言创建了一个新标准,但是只修正了一些C89标准中的细节和增加更多更广的国际字符集支持。不过,这个标准引出了1999年ISO 9899:1999的发表。...修改了 / % 处理负数时的定义,这样可以给出明确的结果,例如在C89中-22 / 7 = -3, -22 % 7 = -1,也可以-22 / 7= -4, -22 % 7 = 6。...增加和修改了一些标准头文件,比如定义 bool 的 ,定义一些标准长度的 int 的 ,定义复数的 ,定义宽字符的 <wctype.h...为了避免这种隐患可以在定义数组时候使用枚举作为数组的下标,这样即使数据输入混乱,但是只要数组定义时候枚举下标定义和数组成员可以对应正确就可以避免这种错误。
匿名方式定义,只能在定义共用体的时候就定义变量 union { int a; int b; char c; }a1,a2,a3; //定义3个变量 union app2 {...枚举 C语言的枚举可以给一串有序的数字集合定义名字,特别是数量较多的整数需要定义名字时,比#define更加方便。...特别是定义函数的返回值类型,特别方便,项目开发中,一般标准的函数返回值都有很多种情况,为了方便调用者判断错误类型,可以把这些错误值全部使用枚举定义,这样调用者就能清楚知道每个数值代表的含义。...枚举的定义语法: enum 枚举名 {枚举元素1,枚举元素2,……}; 默认成员都是从0开始,如果某一个成员被赋了值,则该成员以后的元素都以此为基础递增。...枚举的定义及用法示例: #include #include #define DEF_VAL 100 //枚举类型 /* 枚举内部的是常量标识符,这些常量标识符就相当于全局变量
C语言枚举类型(Enum): 定义形式为:enum typeName{ valueName1, valueName2, valueName3, ...... }; enum 类型名{名字1,名字2} 枚举变量...,枚举值默认从 0 开始,往后逐个加 1(递增) 枚举和宏其实非常类似:宏在预处理阶段将名字替换成对应的值,枚举在编译阶段将名字替换成对应的值。...我们可以将枚举理解为编译阶段的宏。
领取专属 10元无门槛券
手把手带您无忧上云