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 ...
随机推荐
- Cisco 交换机笔记
最近使用 Cisco L3(C3560X), L2(2960) 交换机搭建了 VLAN 环境,其中包括了 VLAN 的配置, VLAN 间的路由等,在此写篇笔记记录下. VLAN 结构 L3 Swit ...
- 手风琴jq实现
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Git篇
安装之后第一步 安装 Git 之后,你要做的第一件事情就是去配置你的名字和邮箱,因为每一次提交都需要这些信息: git config --global user.name "bukas&qu ...
- Vue 中的过滤器的使用
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- HDU 1542"Atlantis"(线段树+扫描线求矩形面积并)
传送门 •题意 给你 n 矩形,每个矩形给出你 $(x_1,y_1),(x_2,y_2)$ 分别表示这个矩形的左下角和右上角坐标: 让你求这 n 个矩形并的面积: 其中 $x \leq 10^{5} ...
- C# double 好用的扩展
在很多代码需要使用数学计算,在用到 double 很难直接判断一个值是 0 或者 1 ,判断两个值相等. 本文提供一个数学扩展,让大家可以简单使用到 double 判断 在开始看本文之前,希望大家是知 ...
- linux进程一个阻塞 I/O 的例子
最后, 我们看一个实现了阻塞 I/O 的真实驱动方法的例子. 这个例子来自 scullpipe 驱 动; 它是 scull 的一个特殊形式, 实现了一个象管道的设备. 在驱动中, 一个阻塞在读调用上的 ...
- MySQL查询语句积累
#查询名字中带李且名字是两个字的所有学生信息 SELECT * FROM user_test WHERE user_name LIKE '李_';
- 测试驱动开发实践—从testList开始
[内容指引]运行单元测试:装配一条数据:模拟更多数据测试列表:测试无搜索列表:测试标准查询:测试高级查询. 一.运行单元测试 我们以文档分类(Category)这个领域类为例,示范如何通过编写测试用例 ...
- 文本框(代替input)输入长度限制、提示
<div class="inform_content_text"> <textarea name="name" placeholder=&qu ...