c++結構體、共用體(聯合體)

jiduoduo發表於2024-04-13

union

資料成員共享同一段記憶體,在使用時按照最大成員變數的大小開闢空間,相對struct比較是節省記憶體的。

記憶體空間是以佔記憶體最大的以準。

struct

資料成員各佔一段記憶體,在使用時按照各自成員變數的大小開闢空間。

如圖:一個學生(姓名name char[10],年齡 old short,電話 tel char[11], 地址 addr[100])

struct: 會開闢 char[10]+short+char[11]+char[100]的地址空間。

union: 只會開闢char[100]的地址空間。

最後:struct 賦值以後不會丟,而union賦值以後,是以最近的一個變數成員為準,如果要讀之前的變數成員的值,那麼將會出現髒資料。

相關文章