一、枚舉的概念
枚舉是C語言中的一種基本數據類型,並不是構造類型,它可以用於聲明一組常數。當一個變量有幾個固定的可能取值時,可以將這個變量定義為枚舉類型。
比如,你可以用一個枚舉類型的變量來表示季節,因為季節只有4種可能的取值:春天、夏天、秋天、冬天。
二、枚舉類型的定義
一般形式為:enum 枚舉名 {枚舉元素1,枚舉元素2,……};
1 enum Season {spring, summer, autumn, winter};
三、枚舉變量的定義
前面只是定義了枚舉類型,接下來就可以利用定義好的枚舉類型定義變量,跟結構體一樣,有3種方式定義枚舉變量
1.先定義枚舉類型,再定義枚舉變量
1 enum Season {spring, summer, autumn, winter}; 2 3 enum Season s;
2.定義枚舉類型的同時定義枚舉變量
1 enum Season {spring, summer, autumn, winter} s;
3.省略枚舉名稱,直接定義枚舉變量
1 enum {spring, summer, autumn, winter} s;
上面三種方式定義的都是枚舉變量s
四、枚舉使用的注意
1> C語言編譯器會將枚舉元素(spring、summer等)作為整型常量處理,稱為枚舉常量。
2> 枚舉元素的值取決於定義時各枚舉元素排列的先后順序。默認情況下,第一個枚舉元素的值為0,第二個為1,依次順序加1。
1 #include <stdio.h> 2 3 int main() 4 { 5 // 1.定義枚舉類型 6 enum Season 7 { 8 spring, 9 summer, 10 autumn, 11 winter 12 }; 13 14 // 2.定義枚舉變量 15 enum Season s = winter; 16 17 18 printf("%d\n", s); 19 20 21 return 0; 22 }
打印結果為:3
也就是說spring的值為0,summer的值為1,autumn的值為2,winter的值為3
3> 也可以在定義枚舉類型時改變枚舉元素的值
1 #include <stdio.h> 2 3 int main() 4 { 5 // 1.定義枚舉類型 6 enum Season 7 { 8 spring = 1, 9 summer, 10 autumn, 11 winter 12 }; 13 14 // 2.定義枚舉變量 15 enum Season s = winter; 16 17 18 printf("%d\n", s); 19 20 21 return 0; 22 }
打印結果為:4
沒有指定值的枚舉元素,其值為前一元素加1。
五、枚舉變量的基本操作
1.賦值
可以給枚舉變量賦枚舉常量或者整型值
1 #include <stdio.h> 2 3 int main() 4 { 5 // 1.定義枚舉類型 6 enum Season {spring, summer, autumn, winter} s; 7 8 // 2.定義枚舉變量 9 s = spring; // 等價於 s = 0; 10 printf("%d\n", s); 11 12 s = winter;//等價於s = 3; 13 printf("%d\n", s); 14 15 return 0; 16 }
打印結果 0
3
2.遍歷枚舉元素
enum Season {spring, summer, autumn, winter} s; // 遍歷枚舉元素 for (s = spring; s <= winter; s++) { printf("枚舉元素:%d \n", s); }
輸出結果: 枚舉元素:0
枚舉元素:1
枚舉元素:2
枚舉元素:3
數據類型總結
一、基本數據類型
1.int
1> long int、long:8個字節 %ld
2> short int、short:2個字節 %d %i
3> unsigned int、unsigned:4個字節 %zd
4> signed int、signed、int:4個字節 %d %i
2.float\double
1> float :4個字節 %f
2> double:8個字節 %f
3.char
1> 1個字節 %c %d
2> char類型保存在內存中的是它的ASCII值
'A' --> 65
二、構造類型
1.數組
1> 只能由同一種類型的數據組成
2> 定義:數據類型 數組名[元素個數];
2.結構體
1> 可以由不同類型的數據組成
2> 先定義類型,再利用類型定義變量
三、指針類型
1.變量的定義
int *p;
2.間接操作變量的值
int a = 10;
p = &a;
*p = 20;
四、枚舉類型
使用場合:當一個變量只允許有幾個固定取值時