結構體 共同體 列舉

2021-07-16 17:13:53 字數 2690 閱讀 7121

列舉:列舉型別的定義形式為:

enum typename;

enum是乙個新的關鍵字,專門用來定義列舉型別,這也是它在c語言中的唯一用途;typename是列舉型別的名字;valuename1, valuename2, valuename3, ......是每個值對應的名字的列表。注意最後的;不能少。

例如,列出乙個星期有幾天:

enum week

;

可以看到,我們僅僅給出了名字,卻沒有給出名字對應的值,這是因為列舉值預設從 0 開始,往後逐個加 1(遞增);也就是說,week 中的 mon、tues ...... sun 對應的值分別為 0、1 ...... 6。

我們也可以給每個名字都指定乙個值:

enum week

;

更為簡單的方法是只給第乙個名字指定值:

enum week

;

這樣列舉值就從 1 開始遞增,跟上面的寫法是等效的。

列舉是一種型別,通過它可以定義列舉變數:

enum

week

a, b, c;

也可以在定義列舉型別的同時定義變數:

enum week a, b, c;

有了列舉變數,就可以把列表中的值賦給它:

enum week

;enum

week

a = mon, b = wed, c = sat;

或者:

純文字

複製

enum week a = mon, b = wed, c = sat;

共同體:

共用體(union)

,它的定義格式為:

union 共用體名;

共用體也是一種自定義型別,可以通過它來建立變數,例如:

union data

;union

data

a, b, c;

上面是先定義共用體,再建立變數,也可以在定義共用體的同時建立變數:

union data a, b, c;

如果不再定義新的變數,也可以將共用體的名字省略:

純文字

複製

union data a, b, c;

結構體:在c語言中,可以使用

結構體(struct)

來存放一組不同型別的資料。結構體的定義形式為:

struct 結構體名;

結構體是一種集合,它裡面包含了多個變數或陣列,它們的型別可以相同,也可以不同,每個這樣的變數或陣列都稱為結構體的

成員(member)

。請看下面的乙個例子:

struct

stu;

stu 為結構體名,它包含了 5 個成員,分別是 name、num、age、group、score。結構體成員的定義方式與變數和陣列的定義方式相同,只是不能初始化。

注意大括號後面的分號;不能少,這是一條完整的語句。
結構體也是一種資料型別,它由程式設計師自己定義,可以包含多個其他型別的資料。

像 int、float、char 等是由c語言本身提供的資料型別,不能再進行分拆,我們稱之為

基本資料型別

;而結構體可以包含多個基本型別的資料,也可以包含其他的結構體,我們將它稱為

複雜資料型別

或構造資料型別

。既然結構體是一種資料型別,那麼就可以用它來定義變數。例如:

struct stu stu1, stu2;
定義了兩個變數 stu1 和 stu2,它們都是 stu 型別,都由 5 個成員組成。注意關鍵字struct不能少。

stu 就像乙個「模板」,定義出來的變數都具有相同的性質。也可以將結構體比作「圖紙」,將結構體變數比作「零件」,根據同一張圖紙生產出來的零件的特性都是一樣的。

你也可以在定義結構體的同時定義結構體變數:

struct

stu stu1, stu2;

將變數放在結構體定義的最後即可。

如果只需要 stu1、stu2 兩個變數,後面不需要再使用結構體名定義其他變數,那麼在定義時也可以不給出結構體名,如下所示:

純文字

複製

struct

stu1, stu2;

這樣做書寫簡單,但是因為沒有結構體名,後面就沒法用該結構體定義新的變數。

然後就是今天乙個任務,乙個揹包的設計思路,首先

1 揹包的按鈕,設定開啟揹包的按鍵b,然後揹包有上限,或者負重,達到負重或達到上限就不能使用;

2揹包的屬性,裡面可以裝什麼,一般是**防具和首飾,然後就是消耗品,材料,任務道具或任務材料,**一般分為幾個品級,白藍紫粉橙,消耗品則分為血瓶藍瓶,或者道具加buff'之類的,然後就是材料,刷圖爆的材料和任務材料。

3然後揹包設定快捷鍵,比如1234,分別對應裝備或消耗品之類,使用乙個消耗品則消耗品-1,使用裝備則替換當前以穿戴裝備。

結構體,共同體

共用體 構造資料型別,也叫聯合體 用途 使幾個不同型別的變數共佔一段記憶體 相互覆蓋 結構體是一種構造資料型別 用途 把不同型別的資料組合成乙個整體 自定義資料型別 結構體變數所佔記憶體長度是各成員佔的記憶體長度的總和。共同體變數所佔記憶體長度是各最長的成員佔的記憶體長度。共同體每次只能存放哪個的一...

結構體和共同體

結構體適用用是將不同型別的資料成員組合到一起,適用於關係緊密和邏輯相關的資料進行處理 與共同體相比較而言,共同體雖然也能表示不同型別資料的資料集合,但是其資料成員的情形是互斥的,每一時刻只有乙個資料成員起作用,例如乙個人的婚姻狀況,未婚 已婚 離婚,這三個狀態在某一時期只能存在一種情況。struct...

結構體和共同體

結構體 定義多個不同型別的成員變數組合在一起,以實現複雜的資料結構。格式 struct 標籤名 變數1 變數2 或者 typedef struct 標籤名 示例 struct books book 當兩個結構體互相包含,則需要對其中乙個結構體進行宣告 宣告 struct b 結構體a指向結構體b s...