C 語言結構體 struct 的簡單介紹及用法

2021-10-05 19:25:13 字數 1630 閱讀 7927

有時候需要多個資料,比如儲存乙個人的身高、體重、年齡、姓名等資訊,該怎麼儲存?我們可能會想到用陣列,可是陣列要求同種型別資料,而年齡和姓名應該用不同的資料型別來存放。

這樣的多種資料型別可以整合到乙個資料中嗎?

我們可以使用結構體來組合各種資料。

英語知識: struct /strʌkt/ n. 結構;結構體;建立構架陣列

宣告

struct 結構體名稱 

;

結構體成員可以是普通的資料型別,也可以是陣列,還可以是另外乙個結構體。

例子:

struct inflatable 

;

定義(宣告)結構體變數
struct 結構體名稱 結構體變數名;
與 c++ 不同的是,在宣告結構體變數時,c 不允許省略關鍵字 struct :

struct inflatable a;

// c

inflatable b;

// c++

c++ 這種變化強調的是,結構宣告定義了一種新型別,當然 c++ 定義時也可加上 struct

定義(宣告)結構體變數例子:

#include

struct book

;int

main()

以上我們定義了乙個名為 book 的結構體,並在 main 函式中宣告了乙個 book 結構體 a ,我們也能在結構體宣告後建立這樣型別的變數。如下:

#include

struct book a;

// 這是全域性變數

intmain()

訪問結構體變數

使用成員運算子( . )來訪問結構體的各種成員。比如說 a.title 就是引用 book 結構體的 title 成員。

#include

struct book a;

// 這是全域性變數

intmain()

輸出:

請輸入書名:c語言學習

請輸入**:9.99

初始化結構體變數

初始化乙個變數和陣列的寫法:

int a =

123;

int b[5]

=;

初始化乙個結構體變數和陣列差不多:

struct book a =

;

或者放在一排寫:

struct book a =

;

初始化結構體的指定成員值

c99 新增

我們可以只初始化 book 的 price 成員:

struct book a =

;

還可以不按結構體宣告的成員順序進行初始化:

struct book a =

;

C語言結構體struct

定義 定義結構體,要定義兩次,1定義型別,2定義變數 1定義時 不分配記憶體,和 define一樣 定義結構體的樣式,叫什麼名字,成員,句式 2再定義 分配記憶體 用著個樣式定義變數 與typedef有點像 3如果定義的是 p指標,只表示出此結構體 變數的起始位址 struct a struct a...

C語言結構體(Struct)

在c 語言中,可以使用結構體 struct 來存放一組不同型別的資料。結構體的定義形式為 struct 結構體名 結構體是一種集合,它裡面包含了多個變數或陣列,它們的型別可以相同,也可以不同,每個這樣的變數或陣列都稱為結構體的成員 member 請看下面的乙個例子 struct stu stu 為結...

C語言 結構體struct 結構體對齊

1 定義乙個結構體 順便例項結構體變數 struct tag 結構體型別名 struct tag 這兩者共同構成了結構體型別 單獨的tag 結構體型別名 不能稱之為結構體型別 結構體變數名 2 定義的同時使用typedef 相當於定義結構體 為結構體起新名字 typedef struct tag 結...