C语言入门教程23-枚举
最后更新于:2022-04-01 20:26:58
本文目录
- [一、枚举的概念](http://www.cnblogs.com/mjios/archive/2013/03/24/2979390.html#label0)
- [二、枚举类型的定义](http://www.cnblogs.com/mjios/archive/2013/03/24/2979390.html#label1)
- [三、枚举变量的定义](http://www.cnblogs.com/mjios/archive/2013/03/24/2979390.html#label2)
- [四、枚举使用的注意](http://www.cnblogs.com/mjios/archive/2013/03/24/2979390.html#label3)
- [五、枚举变量的基本操作](http://www.cnblogs.com/mjios/archive/2013/03/24/2979390.html#label4)
说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略
上一讲介绍了[结构体](http://www.cnblogs.com/mjios/archive/2013/03/24/2977910.html)类型,这讲就介绍C语言中的另一种数据类型---枚举类型。枚举类型在iOS中也是很常用的,用法跟Java中的枚举类似。
[回到顶部](http://www.cnblogs.com/mjios/archive/2013/03/24/2979390.html#labelTop)
### 一、枚举的概念
枚举是C语言中的一种基本数据类型,并不是构造类型,它可以用于声明一组常数。当一个变量有几个固定的可能取值时,可以将这个变量定义为枚举类型。比如,你可以用一个枚举类型的变量来表示季节,因为季节只有4种可能的取值:春天、夏天、秋天、冬天。
[回到顶部](http://www.cnblogs.com/mjios/archive/2013/03/24/2979390.html#labelTop)
### 二、枚举类型的定义
一般形式为:enum 枚举名 {枚举元素1,枚举元素2,……};
~~~
enum Season {spring, summer, autumn, winter};
~~~
[回到顶部](http://www.cnblogs.com/mjios/archive/2013/03/24/2979390.html#labelTop)
### 三、枚举变量的定义
前面只是定义了枚举类型,接下来就可以利用定义好的枚举类型定义变量。
跟结构体一样,有3种方式定义枚举变量
### 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;
~~~
上面三种方式定义的都是枚举变量s
[回到顶部](http://www.cnblogs.com/mjios/archive/2013/03/24/2979390.html#labelTop)
### 四、枚举使用的注意
1> C语言编译器会将枚举元素(spring、summer等)作为整型常量处理,称为枚举常量。
2> 枚举元素的值取决于定义时各枚举元素排列的先后顺序。默认情况下,第一个枚举元素的值为0,第二个为1,依次顺序加1。
~~~
enum Season {spring, summer, autumn, winter};
~~~
也就是说spring的值为0,summer的值为1,autumn的值为2,winter的值为3
3> 也可以在定义枚举类型时改变枚举元素的值
~~~
enum season {spring, summer=3, autumn, winter};
~~~
没有指定值的枚举元素,其值为前一元素加1。也就说spring的值为0,summer的值为3,autumn的值为4,winter的值为5
[回到顶部](http://www.cnblogs.com/mjios/archive/2013/03/24/2979390.html#labelTop)
### 五、枚举变量的基本操作
### 1.赋值
可以给枚举变量赋枚举常量或者整型值
~~~
enum Season {spring, summer, autumn, winter} s;
s = spring; // 等价于 s = 0;
s = 3; // 等价于 s = winter;
~~~
### 2.遍历枚举元素
~~~
enum Season {spring, summer, autumn, winter} s;
// 遍历枚举元素
for (s = spring; s <= winter; s++) {
printf("枚举元素:%d \n", s);
}
~~~
输出结果:![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-05-07_572d767aba335.png)
';