C中union的用法

2021-09-25 20:21:14 字數 829 閱讀 7829

union是一種「類似」與struct的聯合體,聯合的所有成員引用的是記憶體中的相同位置,以最大的成員的記憶體長度作為union的記憶體大小。union主要用來節省空間,預設的訪問許可權是公有的.

#include 

using namespace std;

union node

t; int c;

}obj;

structct;

int main

(int argc, char *ar**)

輸出結果:

union類node的記憶體布局如下:

從執行結果可以看出,sizeof(obj)的大小就等於sizeof(ct)的大小,即:union記憶體大小以最大成員的記憶體大小作為自己的記憶體大小。後面obj.t.a = obj.c 是因為union共享記憶體,變數 t 和 c 都是從相同的首位址開始儲存的,所以obj.c 就覆蓋了obj.t.a的值,所以輸出結果如上面所示。

union和struct都是由多個不同的資料成員組成,但是union所有成員共享一段記憶體位址,只存放最後一次賦值的成員值,而struct可以存放所以有成員的值。

union的大小是所有成員中所佔記憶體最大的成員的大小,struct是所有成員的大小的「和」。

C語言 C 中的union用法總結

開始的話 已經好長時間沒有更新了,對不起自己,更對不起我親愛的讀者,同時也對不起自己開辦的這個部落格平台。忙,太忙了,忙於找工作,找乙份好工作,糾結於去大城市闖呢,還是回到本省的首府城市。大家都在糾結這個問題,也希望大家和我討論討論。別的先不說了,都工作這麼長時間了,還回過頭來總結union,確實有...

c中的union的用法和作用

在c c 程式的編寫中,當多個基本資料型別或復合資料結構要占用同一片記憶體時,我們要使用聯合體 當多種型別,多個物件,多個事物只取其一時 我們姑且通俗地稱其為 n 選1 我們也 可以使用聯合體來發揮其長處。首先看一段 union myun u int k a int main union型別是共享記...

Oracle 中union的用法

例如 select date from store information union select date from internet sales 注意 union用法中,兩個select語句的字段型別匹配,而且字段個數要相同,如上面的例子,在實際的軟體開發過程,會遇到更複雜的情況,具體請看下面...