結構體與共用體

2021-08-18 14:48:42 字數 1117 閱讀 4749

結構體和共用體(聯合體)是自定義的資料型別,常用於處理非數值型資料,使用如:鍊錶、佇列、樹等。

1. 結構體定義

結構體是用其他型別構造出來的資料型別。結構體型別如下:

struct student

定義乙個結構體變數如下:

struct student stu1;

stu1.age=32;

stu1.name="zhong guo";

stu1.number=06001;

stu1.***='m';

stu1.score=87.0;

結構體變數的定義也可以在定義結構體型別的同時進行。也可以定義結構體陣列型別。定義與初始化可以分開進行,也可以在定義時初始化。

2. 指向結構體的指標

指標可以指向整型、浮點型、字元型等基本型別變數,同樣也可以指向結構體變數。指向結構體變數的指標的值是結構體變數的起始位址。指標可以指向結構體,也可以指向結構體陣列。

在結構體定義時,通常使用關鍵字typedef建立已經定義好的資料型別的別名。如:

typedef struct student stuinfo;    //結構體型別struct student的別名就被定義為stuinfo,這樣stuinfo就成為乙個結構體型別。可用stuinfo來定義結構體變數和指標變數。如: 

stuinfo stu[3],*p;
也可用typedef為基本資料型別建立別名,如:

typedef int datatype;     // 這樣,datatype就跟int等效。

使用關鍵字typedef可以使程式有更好的可移植性。

3. 共用體及應用

與結構體一樣,共用體也是派生的資料型別。但共用體的成員共享同乙個儲存空間。定義如下:

union u

共用體使用覆蓋技術,成員變數相互覆蓋。同一時間只能存放乙個型別成員。

共用體變數的初始化不能在定義時進行,共用體也不能作為函式的引數。

結構體與共用體

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

結構體與共用體

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

結構體與共用體

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