1 共用體內存分布

2021-08-26 04:57:38 字數 580 閱讀 9046

共用體內存分布(創新工場)

求下列程式的輸出結果(具體程式既不清楚了,考點在於union

type的記憶體分布):

乙個聯合體的各個成員占用相同的記憶體空間,聯合體的長度等於其中最長成員的長度。

#include #include #includeusing namesapce std;

union u

a; int main()

{ a.x[0] = '1';

a.x[1] = '2';

bitset<32> bin(a.i);

bin = a.x[0];

cout<<"a.x[0]的二進位制數為: "a.x[1]的二進位制數為(從高位到低位): 00000000000000000000000000110010

共用體變數的內的各個成員都是從低位元組開始公用的;

因此a.i的二進位製碼為: 00000000000000000011001000110001

所以程式輸出為12849.

a的ascii碼:65 a的ascii碼:97 1的ascii是49

參考**:

結構體內存對齊 和共用體

這個人寫得差不多了.關於結構體內存對齊 差不多一般的就 3條 自己算去吧 struct p1 struct p2 struct p3 struct p4 struct p5 全部算對應該 才開始啊.struct a struct b sizeof struct b 64位機器上是 32 首先 cha...

C C 結構體內存分布

參考文章 c 中的結構體所佔記憶體空間總結 fengmisaka cnblogs.com 在c c 中,一般情況下。struct 的 sizeof 是所有成員位元組對齊後長度相加,而 union 的 sizeof 是取最大的成員長度,再相加。1 結構體變數的首位址能夠被其最寬基本型別成員的大小所整除...

結構體和共用體 記憶體對齊原則

結構體 結構體 struct 是由一系列具有相同型別或不同型別的資料構成的資料集合。結構體變數所佔記憶體的長度是各個成員的總和,每個成員分別占有自己的儲存空間。關鍵字 struct。共用體 共用體 union 把幾種不同資料型別的變數存放在同一塊記憶體裡,共用體中的變數共享同一塊記憶體,後賦值的會覆...