枚举是C语言中的一种基本数据类型,通过枚举可以声明一组常数,来代表不同的含义,它实际上就是一组整型常量的集合。

  枚举是非常常用的一种类型,在现实生活中也很常见。比如有四个季节,在不同的季节需要显示不同的配色,在代码中可以用1到4四个数字表示不同的季节,但是这样的话,程序的可读性很差,因为你很难区分不同数字代表哪个季节,这个时候就可以使用一个季节的枚举变量来表示春、夏、秋、冬,这样当看到枚举值的第一时刻就能知道对应的季节,但是实际上四个枚举值对应的还是4个整型数字。

枚举类型的定义

enum 枚举名 {枚举元素1, 枚举元素2, 枚举元素3… };

代码

enum Season {
spring,
summer,
autumn,
winter
};

枚举变量的定义

  按照格式定义好枚举类型后,就可以使用定义好的枚举类型声明枚举变量。下面就以四季为例子讲解一下枚举变量定义的几种方式

  1、先定义枚举类型,再定义枚举变量

代码

enum Season {
spring,
summer,
autumn,
winter
}; enum Season s;

  2、定义枚举类型的同时定义枚举变量

代码

enum Season {
spring,
summer,
autumn,
winter
} s;

  3、省略枚举名称,直接定义枚举变量

代码

enum {
spring,
summer,
autumn,
winter
} s;

4、给枚举类型重命名,然后定义枚举变量

代码

typedef enum _season {
spring,
summer,
autumn,
winter
} Season; Season s;

枚举元素对应的值

1、枚举元素的值取决于定义枚举类型时的先后顺序,默认情况下,第一个枚举元素的值为0,第二个为1,后面的依次加1

代码

enum Season {
spring,
summer,
autumn,
winter
} ;

  例子中的spring的值为0,summer为1,autuum为2,winter为3

  2.  枚举元素的值也可以在定义枚举类型的时候进行改变,给某个枚举元素指定一个值,其枚举元素后面的枚举值依次加1

  代码

enum Season {
spring,
summer = ,
autumn,
winter
} ;

  例子中的spring的值为0,summer为3,autuum为4,winter为5

枚举元素对应的值

  定义好枚举类型后,就可以在类中使用枚举类型的实例变量或者在方法中使用枚举类型的参数。给枚举变量赋值可以使用枚举常量,也可以使用整型值,两者效果一样。

代码

enum Season {spring, summer, autumn, winter} s;
Season s1 = spring; //等价于 s1=0
Season s2 = ; //等价于s2= autumn
作者:杰瑞教育
出处:http://www.cnblogs.com/jerehedu/ 
版权声明:本文版权归烟台杰瑞教育科技有限公司和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

技术咨询:
 

IOS基本数据类型之枚举的更多相关文章

  1. c#中的数据类型简介(枚举)

    C#中的数据类型简介(枚举) 枚举的定义 根据MSDN上给出的定义,枚举是一个指定的常数集,其基础类型可以是除Char外的任何整型. 如果没有显式声明基础类型,则使用 Int32. Enum 是 .N ...

  2. 1.0 基础、标示符、常量、数据类型(enum 枚举,struct 结构体)、操作符、循环、数组

    一.程序 现实生活中,程序是指完成某些事务的一种既定方法和过程,可以把程序看成是一系列动作执行过程的描述. 在计算机世界,程序是指令,即为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集 ...

  3. iOS开发中 常用枚举和常用的一些运算符(易错总结)

    1.色值的随机值: #define kColorValue arc4random_uniform(256)/255.0 // arc4random_uniform(256)/255.0; 求出0.0~ ...

  4. iOS 基本数据类型 和 指针 特点

    基本数据类型 : 整型int, 字符型char , 浮点型 (float 和 double), 枚举型; -- 构造类型 : 数组类型, 结构体类型, 共用体类型; -- 指针类型 : 最终要的数据类 ...

  5. 知识点:C语言进阶提高篇,自定义数据类型:枚举

    一.枚举的概念 枚举是C语言中的一种基本数据类型,并不是构造类型,它可以用于声明一组常数.当一个变量有几个固定的可能取值时,可以将这个变量定义为枚举类型.比如,你可以用一个枚举类型的变量来表示季节,因 ...

  6. java 数据类型:枚举类enum、对比方法compreTo()、获取名字.name()、获取对应值的枚举类Enum.valueOf()、包含构造方法和抽象方法的enum;实现接口;

    问题引入 为了将某一数据类型的值限定在可选的合理范围内,比如季节只有四个:春夏秋冬. 什么是枚举类 Java5之后新增了enum关键字(他与class,interface关键字地位相同)用来定义枚举类 ...

  7. iOS动画中的枚举UIViewAnimationOptions

    若本帖转出“博客园”请注明出处(博客园·小八究):http://www.cnblogs.com/xiaobajiu/p/4084747.html 笔记 首先这个枚举属于UIViewAnimation. ...

  8. iOS 开发--NSMutableArray使用枚举方法

    可变数组也可以使用枚举方法, 我们在这里提供了两种枚举方法, 一个是正序枚举, 一个是倒序枚举, 在正序枚举中, 元素的个数和顺序都是不可以修改的, 但是在倒序枚举中却可以修改, 这有些耐人寻味. 涉 ...

  9. ios NSComparator 三种枚举类型

    NSComparator有3种枚举类型 NSOrderedDescending 降序,但是用他可以实现升序或者降序都没问题. NSOrderedAscending 升序,但是目前没有使用出任何效果.. ...

随机推荐

  1. 重置密码解决MySQL for Linux错误 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwor

    一般这个错误是由密码错误引起,解决的办法自然就是重置密码. 假设我们使用的是root账户. 1.重置密码的第一步就是跳过MySQL的密码认证过程,方法如下: #vim /etc/my.cnf(注:wi ...

  2. 【二分】【动态规划】Gym - 101156E - Longest Increasing Subsequences

    求最长上升子序列方案数. 转载自:http://blog.csdn.net/u013445530/article/details/47958617,如造成不便,请博主联系我. 数组A包含N个整数(可能 ...

  3. hdu 4745 区间dp

    题意:求一个环的最长回文序列,是序列不是串 链接:点我 起点是可以任意的, 所以只要求出每个区间的最长回文序列之后取max(dp[1][i]+dp[i+1][n]),即可得最终答案 本来是想扩展两倍的 ...

  4. vijos 1880 变形最短路

    题意:Ninian 的魔力可以在结界间传递.结界中有 N 个光柱,第 i 个光柱的光压范围为 0~Ei .魔力可以有 M 种传递,从光柱 Ai 传递到光柱 Bi ,花费时间 Ti .当魔力从光压为 S ...

  5. 算法转AI平台工程师记录-0

    --- vim源码安装: 1. git clone https://github.com/vim/vim.git 2. cd vim && ./configure --prefix=x ...

  6. 安装第三方jar包的两种方式

    由于部分第三放jar包没有放到maven中央仓库,而项目中又依赖了这些jar包,那么如何安装?我实践了两种,特做记录. 一.安装到 nexus 私有库: 在 3rd party 仓库下有个 Artif ...

  7. Python168的学习笔记1

    在对list的条件选择有两种常用方法,直接使用filter函数,就是filter(func,sequence);另外一种就是迭代操作,类似 x for x in sequence func.这两种方法 ...

  8. Treap树理解

    title: Treap树理解 comments: true date: 2016-10-06 07:57:37 categories: 算法 tags: Treap树 树 Treap树理解 简介 随 ...

  9. Ajax 的概念及过程?Ajax 的交互模型?同步和异步的区别?如何解决跨域问题?

    Ajax 是什么: 1)  通过异步模式,提升了用户体验 2)  优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用 3)  Ajax 在客户端运行,承担了一部分本来由服务器承担的工 ...

  10. Codeforces Round #293 (Div. 2) A. Vitaly and Strings

    A. Vitaly and Strings time limit per test 1 second memory limit per test 256 megabytes input standar ...