1. 程式人生 > 實用技巧 >C語言的結構體與共用體

C語言的結構體與共用體

C語言的結構體與共用體
定義一個結構體的一般形式為:
struct 結構名
{
成員列表
};

成員列表由若干個成員組成,每個成員都是該結構的一個組成部分。對每個成員也必須作型別說明,形式為:
型別說明符 成員名;
看一個例子:
在這裡插入圖片描述

在這裡插入圖片描述
定義結構型別變數有3種方法:
(1)先宣告結構體型別再定義變數名
在這裡插入圖片描述
在這裡插入圖片描述
這種方法是先把結構型別定義了,然後再定義變數名,定義了student1和student2為struct student 型別的變數,即它們具有struct student型別的結構。

(2)在宣告型別的同時定義變數這種形式的定義的一般形式為:
在這裡插入圖片描述
看例子:
在這裡插入圖片描述

(3)直接定義結構體型別變數,其一般形式為:

在這裡插入圖片描述
即不出現結構體名。結構體名是可有可無的!

結構體變數的引用
當引用結構體變數時,遵循一下規則:
(1)不能將一個結構體變數作為一個整體進行輸入和輸出。
在這裡插入圖片描述

正確引用結構體變數中成員的方式為:
結構體變數名.成員名
在這裡插入圖片描述
(2)如果成員本身又屬於一個結構體型別,則要用若干個成員運算子,一級一級地找到最低地一級的成員。只能對最低階的成員進行賦值或存取以及運算。
在這裡插入圖片描述
(這裡學生的生日birthday又是一個結構體,birthday結構體裡面有year, month ,day)
(3)對結構體變數的成員可以像普通變數一樣進行各種運算(根據其型別決定可以進行的運算)
在這裡插入圖片描述
(4)可以引用結構體變數成員的地址,也可以引用結構體變數的地址。

在這裡插入圖片描述

結構體變數的初始化
看例項:
對boy2進行了初始化(看完後要知道結構體變數怎麼進行初始化)
在這裡插入圖片描述

結構體陣列
一個結構體變數中可以存放一組資料(如一個學生的學號、姓名、成績等資料)。

如果有10各學生的資料需要參加運算,顯然應該用陣列,這就是結構體陣列。

結構體陣列與之前說的數值型陣列不同之處在於陣列元素都是一個結構體型別的資料,它們都分別包括各個成員(分量)項。

定義結構體陣列:
和定義結構體變數的方法相仿,只需要說明其為陣列即可。如:
在這裡插入圖片描述
結構體陣列的初始化
在這裡插入圖片描述
指向結構體型別資料的指標
結構指標變數說明的一般形式為:
*struct 結構名 結構指標變數名
在這裡插入圖片描述

賦值是把結構變數的首地址賦予該指標變數,不能把結構名賦予該指標變數。


在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
明天開始結構體與共用體(3)