本文目錄
- [一、枚舉的概念](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);
}
~~~
輸出結果:
- 前言
- C語言入門教程1-概述
- C語言入門教程2-第一個C程序
- C語言入門教程3-關鍵字、標識符、注釋
- C語言入門教程4-變量與常量
- C語言入門教程5-進制
- C語言入門教程6-變量與內存
- C語言入門教程7-基本數據類型
- C語言入門教程8-運算符
- C語言入門教程9-流程控制
- C語言入門教程10-函數
- C語言入門教程11-函數的聲明定義
- C語言入門教程12-scanf與printf輸入輸出函數
- C語言入門教程13-數組-批量數據存儲
- C語言入門教程14-字符串
- C語言入門教程15-字符與字符串常用處理函數
- C語言入門教程16-指針
- C語言入門教程17-指向一維數組元素的指針
- C語言入門教程18-指針與字符串
- C語言入門教程19-預處理指令1-宏定義
- C語言入門教程20-預處理指令2-條件編譯
- C語言入門教程21-預處理指令3-文件包含
- C語言入門教程22-變量類型與作用域
- C語言入門教程23-枚舉
- C語言入門教程24-結構體
- C語言入門教程25-typedef類型別名