結構體與共用體

2021-07-24 21:43:09 字數 615 閱讀 8283

結構體的作用:

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

結構體的定義:

struct student

;struct student stu;

struct student *p_stu = &stu;

注意: . 操作的是結構體變數

-> 操作的是結構體指標

結構體容易造成記憶體空洞。

字對齊:最長的變數位元組長度大於等於四個位元組,都要按4個位元組對齊。

半字對齊:最長的變數位元組長度大於等於兩個位元組,都要按2個位元組對齊。

特殊情況:

struct node

sizeof(node) = 8 ; 佔8個位元組

共用體的特點:

用覆蓋技術,幾個變數相互覆蓋,從而使幾個不同變數共占同一段記憶體的結構,成為共同型別的結構。

共用體的定義類似於結構體,不過共同體的所有成員都在同一段記憶體中存放,起始位址一樣,並且同一時刻只能使用其中的乙個成員變數。

結構體與共用體

1.定義乙個機構體的形式 struct 結構名 2.定義結構體變數 變數名表列 變數名表列 3.結構體成員的表示方法 結構變數名.成員名 例如 boy1.num 如果成員本身又是乙個結構則必須逐級找到最低階的成員才能使用。例如 boy1.birthday.month 4.結構體陣列 方法和結構變數相...

結構體與共用體

結構體和共用體 聯合體 是自定義的資料型別,常用於處理非數值型資料,使用如 鍊錶 佇列 樹等。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變數...