列舉型別的用法

2021-07-11 10:24:53 字數 1389 閱讀 6923

1. 列舉的定義列舉型別定義的一般形式為:

enum 列舉名; 在列舉值表中應羅列出所有可用值。這些值也稱為列舉元素。

例如: 該列舉名為weekday,列舉值共有7個,即一周中的七天。凡被說明為weekday型別變數的取值只能是七天中的某一天。

2. 列舉變數的說明 如同結構和聯合一樣,列舉變數也可用不同的方式說明,即先定義後說明,同時定義說明或直接說明。

設有變數a,b,c被說明為上述的weekday,可採用下述任一種方式:

enum weekday;

enum weekday a,b,c;

或者為: enum weekdaya,b,c;

或者為: enum a,b,c;

列舉型別在使用中有以下規定: 1. 列舉值是常量,不是變數。不能在程式中用賦值語句再對它賦值。

例如對列舉weekday的元素再作以下賦值: sun=5; mon=2; sun=mon; 都是錯誤的。

2. 列舉元素本身由系統定義了乙個表示序號的數值,從0開始順序定義為0,1,2…。如在weekday中,sun值為0,mon值為1,…,sat值為6。

【例11.10】

main() a,b,c; a=sun; b=mon; c=tue; printf("%d,%d,%d",a,b,c); }

說明: 只能把列舉值賦予列舉變數,不能把元素的數值直接賦予列舉變數。

如: a=sum; b=mon; 是正確的。而: a=0; b=1; 是錯誤的。如一定要把數值賦予列舉變數,則必須用強制型別轉換。

如: a=(enum weekday)2; 其意義是將順序號為2的列舉元素賦予列舉變數a,相當於: a=tue;

還應該說明的是列舉元素不是字元常量也不是字串常量,使用時不要加單、雙引號。

[c-sharp]view plain

copy

//此**在vs中編不過去,列舉型別不能做自增操作 

//在gcc中據說能編過去,沒試過

main() month[31],j;  

inti;  

j=a;  

for(i=1;i<=30;i++)  

for(i=1;i<=30;i++)  

}  printf("/n"

);  

}  

若想在vs中編譯,請看下面**:

[c-sharp]view plain

copy

enum

body  

month[31],j;  

inti;  

j=a;  

for(i=1;i<=30;i++)  

for(i=1;i<=30;i++)  

}  printf("/n"

);  

列舉型別的用法

列舉型別 enumeration 是c 中的一種派生資料型別,它是由使用者定義的若干列舉常量的集合。定義格式 列舉型別的定義格式為 enum 型別名 其中 應用舉例 enum color set1 定義列舉型別color set1 enum week 定義列舉型別week 重要提示 定義列舉型別的主...

列舉型別的用法

列舉型別 enumeration 是c 中的一種派生資料型別,它是由使用者定義的若干列舉常量的集合。定義格式 列舉型別的定義格式為 enum 型別名 其中 應用舉例 enum color set1 定義列舉型別color set1 enum week 定義列舉型別week 重要提示 定義列舉型別的主...

enum列舉型別用法

2.列舉變數和列舉常量的關聯對應 3.列舉型別和變數的應用 4.總結 5.參考資料 在實際的程式設計應用中,有的變數只有幾種可能的取值,譬如說乙個家族的幾個成員,性別的兩種可能等等。c 為這種型別的變數的定義提供了enum關鍵字。要使用列舉型別的變數,首先需要先定義乙個列舉型別名,再宣告變數是該列舉...