上一講介紹了結構體類型,這講就介紹C語言中的另外一種數據類型---枚舉類型。枚舉類型在iOS中也是很經常使用的,用法跟Java中的枚舉相似。html
枚舉是C語言中的一種基本數據類型,並非構造類型,它能夠用於聲明一組常數。當一個變量有幾個固定的可能取值時,能夠將這個變量定義爲枚舉類型。好比,你能夠用一個枚舉類型的變量來表示季節,由於季節只有4種可能的取值:春天、夏天、秋天、冬天。ios
通常形式爲:enum 枚舉名 {枚舉元素1,枚舉元素2,……};spring
enum Season {spring, summer, autumn, winter};
前面只是定義了枚舉類型,接下來就能夠利用定義好的枚舉類型定義變量。spa
跟結構體同樣,有3種方式定義枚舉變量code
1.先定義枚舉類型,再定義枚舉變量orm
enum Season {spring, summer, autumn, winner}; enum Season s;
enum Season {spring, summer, autumn, winter} s;
enum {spring, summer, autumn, winter} s;
上面三種方式定義的都是枚舉變量shtm
1> C語言編譯器會將枚舉元素(spring、summer等)做爲整型常量處理,稱爲枚舉常量。blog
2> 枚舉元素的值取決於定義時各枚舉元素排列的前後順序。默認狀況下,第一個枚舉元素的值爲0,第二個爲1,依次順序加1。ci
enum Season {spring, summer, autumn, winter};
也就是說spring的值爲0,summer的值爲1,autumn的值爲2,winter的值爲3get
3> 也能夠在定義枚舉類型時改變枚舉元素的值
enum season {spring, summer=3, autumn, winter};
沒有指定值的枚舉元素,其值爲前一元素加1。也就說spring的值爲0,summer的值爲3,autumn的值爲4,winter的值爲5
能夠給枚舉變量賦枚舉常量或者整型值
enum Season {spring, summer, autumn, winter} s; s = spring; // 等價於 s = 0; s = 3; // 等價於 s = winter;
enum Season {spring, summer, autumn, winter} s; // 遍歷枚舉元素 for (s = spring; s <= winter; s++) { printf("枚舉元素:%d \n", s); }
輸出結果:
注:本文轉自M了個J的博客。