1. 程式人生 > >union記憶體分配

union記憶體分配

網上的有一些說的不清楚,重新對網上程式修改,得出結論


#include<iostream>

union{
int i;
char x[4];
}a;
int main()
{
a.x[0] = 10;
a.x[1] = 1;
a.x[2] = 0;


std::cout << sizeof(a) << std::endl << a.i << std::endl;
// printf("%d\n", a.i);
system("pause");
return 0;

}



//輸出為4    266



原因為系統為a分配4位元組即32位初始為0000000....共32...0,賦值後0000 0000 0000 0000 0000 00001 0000 1010,轉為10進製為266