C語言 共用體變量的引用
對于共用體變量不能整體引用,只能引用共用體變量的某個成員,引用方式與引用結(jié)構(gòu)體變量成員相似,對于共用體成員可以賦值、輸入、輸出、計算等。例如:
union data
{
int a;
int b;
int c;
};
main()
{
union data u1;
u1.a=10;
u1.b=15;
u1.c=u1.a+u1.b;
printf("%d,%d,%d\n",u1.a,u1.b,u1.c);
}
程序分析:定義一個共用體data,其中含三個成員a、b、c,用共用體data定義變量u1,并分別為u1的各個成員u1.a、u1.b、u1.c賦值。最后輸出的結(jié)果是什么呢?
假設(shè)為共用體變量u1分配的內(nèi)存空間為2000,則u1中的各個成員a、b、c在內(nèi)存中的首地址全部都是2000。程序執(zhí)行過程如下:
①先為u1.a賦值10,2000開始地址段中存入10。
②再為u1.b賦值15, 2000地址段中存入15,覆蓋剛存入的10。
③最后計算u1.a+u1.b,因為u1.a、u1.b共用一個地址,所以u1.a、u1.b的值全部都是15,相加的結(jié)果為30,將30賦給u1.c,成員c與成員a、b共用地址,所以c的值30又覆蓋了原來存在該地址中的15,輸出u1.a、u1.b、u1.c全部都是30。
程序執(zhí)行,輸出結(jié)果為:
30,30,30
點擊加載更多評論>>