一、列舉的概念
列舉是c語言中的一種基本資料型別,並不是構造型別,它可以用於宣告一組常數。當乙個變數有幾個固定的可能取值時,可以將這個變數定義為列舉型別。
比如,你可以用乙個列舉型別的變數來表示季節,因為季節只有4種可能的取值:春天、夏天、秋天、冬天。
一般形式為:enum 列舉名 ;
1enum season ;
前面只是定義了列舉型別,接下來就可以利用定義好的列舉型別定義變數,跟結構體一樣,有3種方式定義列舉變數
1enum
season ;23
enum season s;
上面三種方式定義的都是列舉變數s
1> c語言編譯器會將列舉元素(spring、summer等)作為整型常量處理,稱為列舉常量。
2> 列舉元素的值取決於定義時各列舉元素排列的先後順序。預設情況下,第乙個列舉元素的值為0,第二個為1,依次順序加1。
1 #include 23int
main()4;
1314
//2.定義列舉變數
15enum season s =winter;
1617
18 printf("
%d\n
", s);
1920
21return0;
22 }
列印結果為:3
也就是說spring的值為0,summer的值為1,autumn的值為2,winter的值為3
3> 也可以在定義列舉型別時改變列舉元素的值
1 #include 23int
main()4;
1314
//2.定義列舉變數
15enum season s =winter;
1617
18 printf("
%d\n
", s);
1920
21return0;
22 }
列印結果為:4
沒有指定值的列舉元素,其值為前一元素加1。
可以給列舉變數賦列舉常量或者整型值
1 #include 23int
main()
4 s;78
//2.定義列舉變數
9 s = spring; //
等價於 s = 0;
10 printf("
%d\n
", s);
1112 s = winter;//
等價於s = 3;
13 printf("
%d\n
", s);
1415
return0;
16 }
列印結果 0
enum season s;// 遍歷列舉元素
for (s = spring; s <= winter; 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;
四、列舉型別
使用場合:當乙個變數只允許有幾個固定取值時
列舉資料型別C
列舉資料型別是一種由程式設計師定義的資料型別。其合法值時與它們關聯的一組命名整數常量。它之所以被稱為列舉型別,是因為命名常量是作為資料型別定義的一部分而列舉或列出的。以下是列舉型別宣告的示例 enum roster 該語句將建立乙個名為roster的資料型別。因為enum是c 關鍵字,所以它必須小寫...
C語言拾遺 C語言資料型別 列舉型別
摘要 變數的三個基本屬性為 作用域 鏈結屬性和儲存型別。這三個屬性決定變數的可視性和生命期。在c語言中,僅有4種基本資料型別 整型 浮點型 指標和聚合型別 如 陣列和結構體 所有其他的型別都是從這4種基本型別的某種組合派生而來。列舉是 c 語言中的一種基本資料型別,它可以讓資料更簡潔,更易讀。宣告為...
C語言列舉型別
在實際問題中,有些變數的取值被限定在乙個有限的範圍內。例如,乙個星期內只有七天,一年只有十二個月,乙個班每週有六門課程等等。如果把這些量說明為整型,字元型或其它型別顯然是不妥當的。為此,語言提供了一種稱為 列舉 的型別。在 列舉 型別的定義中列舉出所有可能的取值,被說明為該 列舉 型別的變數取值不能...