C語言之聯合體


聯合union是一個能在同一個存儲空間存儲不同類型數據的類型
聯合體所占的內存長度等於其最長成員的長度,也有叫做共用體

聯合體雖然可以有多個成員,但同一時間只能存放其中一種
對於聯合體來講最基本的原則是,一次只操作一個成員變量,如果這個變量是指針,那么一定是處理完指針對應的內存之后再來使用其他成員

union variant{
	int ivalue;
	char cvalue;
	double dvalue;
};

int main()
{
	union variant var;
	var.cvalue = 12;
	printf("%d\n", var.ivalue);
	printf("%p, %p, %p\n", &(var.cvalue), &(var.ivalue), &(var.dvalue));
	return 0;
}
variant.ivalue = 0x1234;//34 12 00 00
variant.cvalue = 1;//01 12 00 00
printf("%x", variant.ivalue);//輸出結果為0x1201

所以在聯合體中,基本不會使用指針


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM