C语言之枚举数据类型
枚举数据类型概述:
1.枚举类型是C语言的一种构造类型。它用于声明一组命名的常数,
2.当一个变量有几种可能的取值时,可以将它定义为枚举类型。
3.枚举类型是由用户自定义的由多个命名枚举常量构成的类型,
其声明形式为:
示例:enum tagDAYS {MON, TUE , WED, THU, FRI , SAT, SUN};
1.enum tagDAYS是枚举类型,MON等是命名枚举常量。
2.默认时枚举常量总是从0开始,后续的枚举常量总是前一个的枚举常量加一。
3.如MON为0,TUE为1, ..... SUN为6。
注意事项:
1.可以在(仅仅在)声明枚举类型时,为命名枚举常量指定值。
例如:enum tagCOLORS {RED=10 , GREEN=8,BLUE , BLACK,WHITE};
则RED为10、GREEN为8、BLUE为9、BLACK为10、WHITE为11。
2.命名枚举常量是一个整型常量值,也称为枚举器
( enumerator),在枚举类型范围内必须是唯一的。
命名枚举常量是右值不是左值,例如:
定义枚举类型对象有三种形式:
1.可以在定义对象时进行初始化,其形式为:
枚举对象名1 = 初值1,枚举对象名2 = 初值2,.....
2.例如:enum tagDIRECTION{LEFT ,UP。RIGHT, DOwN, BEFORE ,BACK} dir=LEFT;
注意事项:
1.本质上,枚举类型对象是其值限定在枚举值范围内的整型变量。
2.在许多应用程序中,例如设计使用操作杆的游戏程序,代表
操作方向的变量的取值就希望是有限集合常量,这时使用枚举类型很方便。
3.当给枚举类型对象赋值时,若是除枚举值之外的其他值,编译器会给出错误信息,
这样就能在编译阶段帮助程序员发现潜在的取值超出规定范围的错误。例如:
C语言之枚举数据类型的更多相关文章
- Go 语言的基本数据类型
Go 语言的基本数据类型 0)变量声明 var 变量名字 类型 = 表达式 例: 其中“类型”或“= 表达式”两个部分可以省略其中的一个. 1)根据初始化表达式来推导类型信息 2)默认值初始化为0. ...
- C语言-06复杂数据类型-04 结构体
结构体的说明(构造类型) 数组:只能由多个相同类型的数据构成 结构体:可以由多个不同类型的数据构成 ,结构体的类型是不存在的,自己定义 int main() { // 1.定义结构体类型 定义类型的时 ...
- Android For JNI(二)——C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器
Android For JNI(二)--C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器 当我们把Hello World写完之后,我们就可以迈入C的大门了,今天就来讲讲基本的一些数据类型 ...
- Go语言基础之数据类型
Go语言基础之数据类型 Go语言中有丰富的数据类型,除了基本的整型.浮点型.布尔型.字符串外,还有数组.切片.结构体.函数.map.通道(channel)等.Go 语言的基本类型和其他语言大同小异. ...
- [日常] Go语言圣经--复合数据类型,数组习题
go语言圣经-复合数据类型 1.以不同的方式组合基本类型可以构造出来的复合数据类型 2.四种类型——数组.slice.map和结构体 3.数组是由同构的元素组成——每个数组元素都是完全相同的类型——结 ...
- C语言的基本数据类型长度
PS:以下内容是在Xcode的编辑器64位环境下的测试结果,网上有关于64位和32位各数据类型存在的差异,请自行online search. main.m #import <Foundation ...
- C语言复习————基本数据类型、运算符和表达式
数据类型/运算符/表达式 主要分两部分介绍,第一部分介绍常用的数据类型,例如:常量和变量/整型/实型/字符型:第二部分介绍算数运算符和算数表达式以及赋值运算符和逗号运算符. 一. 常用的数据类型 1. ...
- C语言基础知识-数据类型
C语言基础知识-数据类型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常量与变量 1>.关键字 C的关键字共有32个. >.数据类型关键字(12个) char,s ...
- Go语言学习之数据类型
### Go语言学习之数据类型 数据类型的转换 1.Go语言不允许隐式类型转换(显示转换才可以) 2.别名和原有类型也不能进行隐式类型转换 例子: func TestImplicit(t *testi ...
随机推荐
- Taglib自定义万能标签扩展 DownLoad
http://www.thinkphp.cn/extend/538.html 用ThinkPHP的标签做网站觉得不够快速,就自己写了一个扩展,感觉挺好的,分享出来,给有需要的TPER. 复制代码 &l ...
- Python--day66--内容回顾
3,python中的大小比较和js中的大小比较规则: python中a>b>c,就是先比较a>b,然后再比较b>c,都为true的话就返回true: js中的a>b> ...
- UVA 11992 ——线段树(区间修改)
解题思路: 将矩阵每一行建立一棵线段树,进而变成一维问题求解.注意数组要开 4*N 代码如下: #include <iostream> #include <cstdio> #i ...
- ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(8)之文章管理
到这一步,我们整个项目的核心搭建已经算是完成了,接下来就是我们业务功能的实际应用,也就是表现层的设计和实现,如果你是一个项目负责人,到这一步,接下来的工作就可以交给下面的兄弟去完成了,在这里我们用文章 ...
- yum安装gcc和gcc-c++
本次总结参考 博客:http://blog.csdn.net/robertkun/article/details/8466700 ,非常 感谢他的博客,帮我解决了问题. 今天安装gcc-c++时出现 ...
- centos虚拟机Ping不通网关
centos虚拟机Ping不通网关 今天在VMware中安装了centos mini版本,安装完成后,用xshell连接一直连不上,本来以为是mini版本没有安装ssh server,于是就用命令: ...
- WebLogic Developer版创建domain
1.直接在cmd命令窗口中运行%MW_HOME%目录下的configure.cmd文件,这个过程会解压一些jar文件,知道提示是否配置domain: 2.可以通过执行%MW_HOME%\oracle_ ...
- openwrt上wifi探针的实现----mt7620a+rt2860v2
openwrt上wifi探针的实现----mt7620a+rt2860v2 [摘要:甚么是wifi探针 看到探针,感到很矮小上的模样,实在便是经过wifi汇集经由那个AP局限的脚机的mac地点,出有甚 ...
- [转]SIMD、MMX、SSE、AVX、3D Now!、NEON
转载来源<[整理]SIMD.MMX.SSE.AVX.3D Now!.neon> 本文摘取部分内容,详细请看原文. SIMD NEON是通用的SIMD(单指令多数据)引擎. 对于SISD,每 ...
- 【时区问题】SpringBoot+mybatis查询mysql的datetime类型数据时间差14小时
[时区问题]MyBatis查询MySQL的datetime类型数据时间差14小时 故障解决方式 与数据库连接时,定义时区,避免mybatis框架从mysql获取时区.在连接上加上 serverTime ...