有時候需要多個資料,比如儲存乙個人的身高、體重、年齡、姓名等資訊,該怎麼儲存?我們可能會想到用陣列,可是陣列要求同種型別資料,而年齡和姓名應該用不同的資料型別來存放。
這樣的多種資料型別可以整合到乙個資料中嗎?
我們可以使用結構體來組合各種資料。
英語知識: 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 結...