c核心概念之結構體 共用體

2021-10-05 20:49:06 字數 1206 閱讀 6266

讀書筆記

結構體

由一系列具有相同型別或不同型別的資料構成的資料集合。定義形式:

struct 結構體名 ;

**定義結構體變數**

struct 結構體名

變數名1,變數名2;

**或者**

struct

變數名1,變數名2;

**或者**

struct 結構體名

struct 結構體名 變數名1,變數名2;

結構體為它的每乙個成員都分配儲存空間,結構體所占用的記憶體大小為所有成員各自占用的記憶體大小之和。

共用體

與結構體類似,也由基本資料結構組合而成。區別在於共用體占用的記憶體大小,由其成員中占用記憶體最大的那個決定,所有的成員都占用同乙個起始位址和同一段記憶體空間。對於共用體變數,在某一時刻,只能儲存其某一成員資訊。

定義:union 共用體名

;共用體變數定義:

union 共用體名

變數1,變數2......;

或者union

變數1,變數2......;

或者union 共用體名

;union 共用體名 變數1,變數2......;

/**

接下來我們用結構體和共用體巢狀定義乙個自定義型別來登記學校老師和學生的資訊。*/

#include<stdio.h>

#include<stdlib.h>

struct inforteacher;

struct

student;

} perinf;};

void

print

(struct infor per,

int n)

else

}return;}

void

input

(struct infor per,

int n)

elseif(

't'==per[i]

.identity)

else

}return;}

void

main()

簡單來說:使用共用體的作用就是節省記憶體空間,那麼在什麼情況下使用共用體比較合適呢?

當資料項使用2種或者多種格式但又不會同時使用時,使用共用體可以節省記憶體空間。

C 結構體共用體

12 c 中陣列初始化的特點 初始話陣列可以省略等號 初始話內容為空 不可縮窄操作 double people double people int number 不通過,因為浮點到整形為縮窄13 sizeof 計算陣列時候會比strlen 多計算乙個0位元組 14 字串的初始化和賦值,string ...

結構體 共用體

結構體 結構體的定義1 struct mystruct 定義新變數 struct mystruct s1 結構體定義2 typedef struct mystruct mstrct 定義新變數 mstrct s1 結構體定義3 type struct mstrct 定義新變數 mstrct s1 共...

C 結構體 共用體 列舉

一 結構體 首先為什麼要使用結構體?比如說你要儲存乙個學生的資訊,包含 姓名 char 學號 int 成績 double 我們希望可以把這些資訊放在乙個單元中,陣列滿足不了這種要求,因為陣列中每個元素的型別是一樣的。所以我們就需要別外一種資料格式,以就是現在要說的結構體 結構體是由使用者自己定義的一...