C語言聯合體

C語言聯合體

聯合體和結構體看起來很像,但是共用體使用了內存覆蓋技術,同一時刻只能保存一個成員的值,如果對新的成員賦值,就會把原來成員的值覆蓋掉。

結構體所佔的字節回是所有結構體成員佔用字節的總和,但聯合體所佔字節數根據成員裡所佔字節最多的來定。

下面是聯合體定義方法:

union 聯合體類型名{ 成員列表 };

假如我們定義一個聯合體類型:

union a{short i;char j;float f;};

f所佔的字節最多為4個字節,我們的聯合體a的字節也是4個字節,a聯合體內3個成員共享這4個字節。

我們使用聯合體的時候和使用結構體一樣的飲用方法,關於賦初值看下面。

union a data={20}; //必須要用{}擴起來,必須只有一個數值。

同樣大家需要注意由於它們都共用一個地址同一塊內存空間,所以記住對其中一個成員更改,操作的時候,對別的成員影響。

文章到這裡就結束了,到這裡大家應該知道怎麼用了吧。還不太懂的話,拿代碼去研究研究。還不懂的可以關注後私信問我,我一般會在我發帖的這個時候回覆。不太及時請諒解。另外大家如果想學習c語言或者c++關注後私信發送“c語言”或者“c++”獲取群號。可領取學習資料,和大家一起學習交流,或有免費直播講解cc++,和幫助答疑。

C語言聯合體


分享到:


相關文章: