union中的內存分配

在union聯合體中,所有的變量是公用一個內存的,即以最大內存變量作爲整個union的內存空間進行申請。同時也服從內存對其的策略,即如果同時又一個char和一個int類型,則佔據4個字節的內存空間,最低字節就是char所對應的值,而如果單純的只給char變量賦值,則int型變量的高三個字節是未定義的。

#include<iostream>
using namespace std;

union CC
{
	int c;
	char m;
};

int main()
{	
	cout<<"*************************"<<endl;
	CC x;
	x.m=0xAA;
	cout<<hex<<(x.c)<<endl;
	cout<<int('a')<<endl;

	system("pause");
	return 0;
}

輸出爲CCCCCCAA,其中CC表示VS2010編譯器在棧中未定義變量的初始值。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章