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 ...
随机推荐
- git pull 和git fetch区别?
git:从远程分支获取最新的版本至本地有两个命令. git fetch 相当于从远程获取最新的版本至本地,但不会自动merge git pull 相当于从远程获取最新的版本并merge至本地
- 第三次脱发——Scurm学(ctrl)习(C)心得
Scrum 学习心得: 首先,敏捷并不是一门具体的技术,而是一种理念或者说是一种思想.它可以指导我们更加高效的开发. 其次,敏捷开发都具有以下共同的特征: 迭代式开发 增量交付 开发团队和用户反馈推动 ...
- java操作数组的工具类-Arrays
static int binarySearch(type[] a, type key) 使用二分搜索法来搜索key元素在数组中的索引:若a数组不包括key,返回负数.(该方法必须已按升序排列后调用). ...
- chrome浏览器频繁卡死
输入chrome:flag 把对应的GPU选项关掉 或者重装 ,从360软件管理器上装
- 从http到https--phpStudy2018
0. 将SSL证书解压到以下目录,申请方式见 百度 Apache/cert/ 分别更名为 my_public.crt my.key my_chain.crt 1. phpStudy->其它选项菜 ...
- SpringMVC 非注解配置
web.xml配置: <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>o ...
- 面试中常考的字符串操作方法大全,包含ES6
原文链接:http://caibaojian.com/js-string.html 一.charAt() 返回在指定位置的字符. var str="abc" console.log ...
- dotnet core 集成到 Mattermost 聊天工具
在找了很久的团队交流工具,发现了 Mattermost 最好用,但是还需要做一些定制化的功能,于是就找到了 Mattermost 插件开发,还找到了如何自己写服务集成到 Mattermost 里面 本 ...
- 个人笔记-快速搭建k8s-1.16.0
1.阿里云购买4台实例 4核16G 120G云盘 centos7.6 固定带宽1M(双主双从) https://www.aliyun.com/ 2.安装dockeryum remove docker ...
- Android TextView调用Settext()耗时的原因
当textview的宽设置为wrap_content的时候,底层会调用checkForRelayout函数,这个函数根据文字的多少重新开始布局 因此将宽度设置为固定值或者match_parent的时候 ...