c語言的枚舉(遍歷枚舉)與數據類型總結


一、枚舉的概念

枚舉是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;

 

四、枚舉類型

使用場合:當一個變量只允許有幾個固定取值時


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM