C語言從零到入門 第十四節 結構體與聯合體

2021-10-08 11:57:06 字數 1693 閱讀 5830

struct 結構體名;

注意:不要忘記{}後面的「 ; 」

例如,我們宣告乙個結構體「person」:

struct person

;

在我們宣告乙個結構體後,我們可以利用下面的語法宣告乙個結構體變數:

struct 結構體名 變數名;

例如:

struct person sam;

struct person jack;

// 這裡我們宣告了兩個結構體變數 sam 和 jack

a、宣告並賦值
struct person sam =

;

觀察上面的**,"{}"中的各種變數依次與結構體中的成員變數對應。

b、先宣告再賦值

宣告乙個結構體後,可以利用

結構體變數名 . 成員變數名

為結構體變數賦值。

例如:

struct person tom;

tom.name =

"tom"

;tom.age =11;

tom.country =

"england"

;

結構體變數名 . 成員變數名

例如:

printf

("tom的年齡是%d"

, tom.age)

;

聯合體的宣告與結構體類似:

union 聯合體名;

注意:不要忘記{}後面的「 ; 」

例如:

union myunion

;

與結構體類似:

union 聯合體名 變數名;

例如:

union myunion m;

m.a =1;

printf

("%d\n"

, m.a)

;// 輸出1

m.b =

666;

printf

("%d\n"

, m.a)

;// 輸出666(成員變數a已經被覆蓋掉)

printf

("%d\n"

, m.b)

;// 輸出666

聯合體中的成員變數共用乙個儲存空間,所以為成員變數賦值時,原來的成員變數就會被覆蓋掉,我們可以利用聯合體型別來適當減少儲存空間的占用。

typedef作用是為一種資料型別起乙個新的名字。

例如:

typedef

int number;

// 這裡我們就為 int 起了乙個新的名字 number

number a =1;

// 相當於 int a = 1;

所有我們可以利用 typedef 來為結構體起乙個別名,減少**量;

typedef

struct

person;

// 注意,這裡的 person 是新的別名,不是結構體名

person a =

;// 這樣,在宣告時就不用寫前面的 struct 了

每週五晚20:00更新

C語言從零到入門 第十一節 迴圈結構

while 條件表示式 與分支結構類似,如果 塊中的 只有一行,可以省略 include void main 或 include void main 因為在c語言中,0表示 假 所以當 i 的值為0時,跳出迴圈 do while 條件表示式 與while迴圈類似,不過do while迴圈首先執行 再...

C語言從零到入門 第十三節 函式

函式是c語言的基本單位 觀察下面的數學中的函式 f x x 1 現在我們把它變成c語言函式的格式 doublef float x 函式返回型別 函式名 引數型別 引數名,引數型別 引數名.與變數的命名規則相同 return 語句除了表示函式返回了乙個資料,也標誌著函式的結束。在return語句執行後...

C語言 結構體從入門到精通

最近老師在講解資料結構的內容,當老師講資料結構的 時,經常用到結構體這個東西,趁機複習下結構體的內容。結構體的定義 把一些基本型別的資料組合在一起而形成的乙個新的複合型的資料型別,這個就叫做結構體。為什麼需要結構體 為了表示一些複雜的事物,而基本的資料型別無法滿足相應的請求。結構體的一般形式 申明乙...