列舉:乙個被命名的整型常數的集合,關鍵字為:enum
列舉的定義與賦值:
enum day//關鍵字加列舉名
;
注意:1.像這樣沒有進行初始化,則代表從第乙個成員起,依次賦值為0,1,2…。但當其某個成員賦值(初始化)後,其後邊的成員按加1的規則確定其值。eg:
enum num
;
則a=0,b=0,c=1,d=3,e=4;
2.賦值時也可讓其等於某個負數,規則仍然不變。
3.列舉變數的賦值只能取已經定義好的列舉列表中的某個值,
eg:
//接上述**,建立乙個列舉變數
enum num ret;
ret = e;
//ret的賦值範圍為(a,b,c,d,e)
而不能如此定義:
ret =3;
若必須要這樣定義,則需要強制型別轉化
ret=
(enum num)3;
//等同於ret=d;
注意:在使用列舉常量時,要清楚其為常量,不可被賦值,也不可被改變
聯合:
一種特殊的自定義型別,可包含一系列的不同型別,相當於結構體;不過不同的是聯合中的成員共用一塊空間,所以在同一時間只能保留乙個屬性內容。
聯合關鍵字:union
聯合的定義
union un
;un有char
,int
,float三種屬性;
聯合大小計算
1.聯合大小至少是最大成員的大小;例如:上述聯合大小為8
2.當最大成員大小不是最大對齊數的整數倍時,就需要對齊至最大對齊數的整數倍處。例如:
union un
;
其最大對齊數為:int型的4;
最大成員為char[5],大小為5;
故此根據對其原則:聯合大小為8。
聯合,列舉與typedef
聯合,是乙個能在同一塊儲存空間儲存不同型別 不同時 資料的型別。因此為聯合的儲存空間為所有成員中佔據空間最大的。它允許建立乙個用於儲存乙個型別不定的值的變數。簡單點說,可以用該變數儲存char型別的,也可以用於儲存char 型別的,甚至是struct型別的。如 union author void t...
結構體列舉與聯合
基本介紹 struct是結構體的關鍵字,它將一些相關聯的資料打包成乙個整體,這些相關聯的資料可以是不同的型別。它們被稱為結構體的成員,結構體的成員可以是標量 陣列 指標 或者是其他結構體。結構的宣告 假設我們要建立學生檔案,要納入學生的姓名,年齡和性別三個內容。那麼我們可以通過建立乙個結構體來實現這...
C 結構 聯合與列舉
8.1 結構 是任意型別元素的集合。8.1.1 結構布局 結構型別的物件可以被賦值,作為實參傳入函式,或者作為函式返回。struct readout 布局方式 1 4 4 1 4 sizeof readout 12 短長短的風格,剩餘空間未使用 struct readout 布局方式 4 2 4 s...