note:
儘管乙個列舉常量占用4個位元組,恰好和int型別占用的位元組數相同,通過sizeof操作符求得,但enum型別和int型別並不等價,將int型別的整數賦值給enum變數時,需要進行強制型別裝換。因為列舉型別是一種基本資料型別,而不是一種構造型別,所以不能把這些列舉常量說明為整形,字元型或其他型別。(通常用來定義一些標誌位)
enum day
;sizeof
(day)==4
;
第乙個列舉成員的預設值為整型的 0,後續列舉成員的值在前乙個成員上加 1。我們在這個例項中把第乙個列舉成員的值定義為 1,第二個就為 2,以此類推。在列舉型別中定義的常量,屬於定義列舉的作用域,而不屬於這個列舉型別。
enum day
;//其中mon的值為0,後面型別依次加1.
//mon, tue, wed, thu, fri, sat, sun對整個檔案有效,「類似巨集定義」
定義列舉型別時改變列舉元素的值:
enum day
;//mon,值為0,tue值為1,wed值為6,thu值為7,fri值為8,sat值為9,sun值為10
列舉型別定義方式:
//型別於結構體
enum day
;enum day day;
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
enum day
day;
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
enum
day;
以下將整數裝換為列舉:
#include
#include
intmain()
workday;
int a =1;
enum day weekend;
weekend =
(enum day ) a;
//型別轉換
//weekend = a; //錯誤
printf
("weekend:%d"
,weekend)
;return0;
}//weekend:1
C語言中enum 列舉
列舉是 c 語言中的一種基本資料型別,它可以讓資料更簡潔,更易讀。列舉語法定義格式為 enum 列舉名 接下來我們舉個例子,比如 一星期有 7 天,如果不用列舉,我們需要使用 define 來為每個整數定義乙個別名 define mon 1 define tue 2 define wed 3 def...
C語言中enum型別的用法
11.10 列舉型別 在實際問題中,有些變數的取值被限定在乙個有限的範圍內。例如,乙個星期內只有七天,一年只有十二個月,乙個班每週有六門課程等等。如果把這些量說明為整型,字元型或其它型別顯然是不妥當的。為此,c語言提供了一種稱為 列舉 的型別。在 列舉 型別的定義中列舉出所有可能的取值,被說明為該 ...
c語言中enum型別的用法
11.10 列舉型別 在實際問題中,有些變數的取值被限定在乙個有限的範圍內。例如,乙個星期內只有七天,一年只有十二個月,乙個班每週有六門課程等等。如果把這些量說明為整型,字元型或其它型別顯然是不妥當的。為此,c語言提供了一種稱為 列舉 的型別。在 列舉 型別的定義中列舉出所有可能的取值,被說明為該 ...