結構體與共用體

2021-06-02 09:34:58 字數 1223 閱讀 2836

1.定義乙個機構體的形式

struct 結構名;

2.定義結構體變數

變數名表列;

變數名表列;

3.結構體成員的表示方法

結構變數名.成員名  

例如: boy1.num

如果成員本身又是乙個結構則必須逐級找到最低階的成員才能使用。   例如

boy1.birthday.month

4.結構體陣列

方法和結構變數相似,只需說明它為陣列型別即可。

5.結構體指標變數的說明和使用

說明:struct 結構名 *結構指標變數名  

例如:struct stu *pstu;

其訪問的一般形式為:

(* 結構指標變數

).成員名

例如:(*pstu).num

或為:結構指標變數

->

成員名 

pstu->num

6.鍊錶(記憶體中不連續儲存的)

定義:可在第乙個結點的指標域記憶體入第二個結點的首位址,在第二個結點的指標域內又存放第三個結點的首位址,如此串連下去直到最後乙個結點。最後乙個結點因無後續結點連線,其指標域可賦為0。這樣一種連線方式,在資料結構中稱為「鍊錶」。

處理動態鍊錶所需函式

7.共用體

定義形式:union 共用

體名變數列表;例如:union datea,b,c;

還有幾種定義類似於結構體的定義

但共用體和機構提的含義不同,結構體所佔記憶體等於各成員佔的記憶體長度之和,公用體所佔的記憶體長度等於最長的成員長

共同體的引用:a.i

共用體內的值是最後一次存入的變數值所覆蓋

不能對共用體變數名賦值,不能引用變數名得到乙個值,不能在定義共用體變數時初始化

8.列舉型別

定義:有些變數的取值被限定在乙個有限的範圍內

形式:enum

列舉名;   例如:

enum weekday;

說明形式類似於結構體和共用體

1.列舉值是常量,不是變數。不能在程式中用賦值語句再對它賦值。

2.列舉元素本身由系統定義了乙個表示序號的數值,從0開始順序定義為0,1,2…。但是也可以在定義的時候由程式設計師指定其值

3.列舉值可以用來進行判斷比較

4.乙個整數不能直接賦給乙個列舉變數,應先進行強制型別轉換,例如:workday=(enum weekday)2;

9.typedef定義型別

結構體與共用體

結構體的作用 在網路協議 通訊控制 嵌入式系統的c c 程式設計中,我們經常要傳送的不是簡單的位元組流 char型陣列 而是多種資料組合在一起的乙個整體。其表現形式是乙個結構體。簡單來說,結構體就是用來封裝資料的。結構體的定義 struct student struct student stu st...

結構體與共用體

結構體和共用體 聯合體 是自定義的資料型別,常用於處理非數值型資料,使用如 鍊錶 佇列 樹等。1.結構體定義 結構體是用其他型別構造出來的資料型別。結構體型別如下 struct student 定義乙個結構體變數如下 struct student stu1 stu1.age 32 stu1.name...

結構體與共用體

c語言中的結構體有些類似物件,只是不能繼承例項化,只能用於表示儲存不同的資料型別。例如頂乙個book的 物件 struct book book 其中book是結構體的標籤,book結構體的變數名,裡面的char title 50 是定義了乙個個的變數。char title 50 表示對title變數...