C 列舉型別詳解

2022-08-05 16:51:12 字數 1424 閱讀 3014

非原創作品,**自:

一、列舉型別的定義

enum 型別名 ;

型別名是變數名,指定列舉型別的名稱。

列舉值表也叫列舉元素列表,列出定義的列舉型別的所有可用值,各個值之間用“,”分開。

例:enum suit ;

二、列舉變數說明

列舉變數有多種宣告方式:

1.列舉型別定義與變數宣告分開

如:enum suit ;

enum suit a;

enum suit b,c;

變數a,b,c的型別都定義為列舉型別enum suit。

2.列舉型別定義與變數宣告同時進行

如:enum suit a,b,c;

此處型別名可以省略,如以下的宣告也是可以的。

enum a,b,c;

3.用typedef先將列舉型別定義為別名,再利用別名進行變數的宣告

有以下幾種方式:

1).typedef enum suit suit;

enum suit a;

enum suit b,c;

2).typedef enumsuit;

enum suit a;

enum suit b,c;

3).typedef enum suit ;

enum suit a;

enum suit b,c;

注意:同一程式中不能定義同型別名的列舉型別;不同列舉型別的列舉元素不能同名。

三、列舉元素說明

1.將會為每個列舉元素分配一個整型值,預設從0開始,逐個加1。

2.也可以在定義列舉型別時對列舉元素賦值,此時,賦值的列舉值為所賦的值,而其他沒有賦值的列舉值在為前一個列舉值加1.

2.列舉值是常量不是變數,不能在程式中再為列舉元素賦值。

四、列舉型與整型的轉換

列舉型可以隱式的轉換為int型,int型不能隱式的轉換為列舉型。

int型不能隱式轉換為列舉型

列舉型可以隱式的轉換為int型

參考: