複習C (五)復合型別 結構與共用體

2021-10-03 17:53:02 字數 965 閱讀 2487

結構可以以乙個單元儲存幾個不同型別的資料,結構還可以構成結構陣列。結構的概念也是物件導向概念的重要部分。

結構是使用者所定義的,結構的宣告定義了這種型別的資料屬性(各種資料型別,包括string)。

struct a

;//這裡的分號要記得加

宣告變數和訪問結構的成員

a toy;

cout<初始化

a toy=

//可以不用等號

;//逗號連線,分號結尾

若大括號中為空,則所有成員為0。

成員賦值,即將乙個結構賦值給另乙個結構,此時結構中的所有成員都將被賦給另一結構的相應成員。

可以同時定義結構和宣告結構變數,甚至同時初始化。

struct a

toy,pet;

struct b

toy=

;

還可以建立結構陣列。

可以指定占用特定位數的結構成員。每個這樣的成員都被稱為位欄位。冒號後的數字為占用位數。

struct a

;

共用體的句法和結構相似,但含義不同。結構可以同時儲存不同的資料型別,而共用體在同一時間只能儲存其中的一種。

union a

;a toy;

toy.x=50;

//儲存了乙個整型

toy.y=

20.28

;//這時儲存了乙個double型,但之前儲存的int已經丟失。

共用體每次只儲存乙個值,所以它的長度為其最大成員的長度。

共用體在成員不同時使用時,比結構更節省空間。

而更有用(個人感覺)的用法是

struct cd;

};

匿名共用體的成員位於相同位址,每次只有乙個成員是當前成員。

結構體與共用體的複習(2)

指向結構體變數的指標 乙個結構體變數的指標就是該變數所佔據的記憶體段的起始位址。可以設乙個指標變數,用來指向乙個結構體變數,此時該指標變數的值是結構體變數的起始位址。指標變數也可以用來指向結構體陣列中的元素。include include int main struct student stu 1 ...

結構體與共用體

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

結構體與共用體

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