a)
#i nclude
union
{
int i;
char x[2];
}a;
void main()
{
a.x[0] = 10;
a.x[1] = 1;
printf(“%d”,a.i);
}
答案:266 (低位低地址,高位高地址,記憶體佔用情況是Ox010A)
b)
main()
{
union{ /*定義一個聯合*/
int i;
struct{ /*在聯合中定義一個結構*/
char first;
char second;
}half;
}number;
number.i=0×4241; /*聯合成員賦值*/
printf(“%c%cn”, t, nd);
t=’a'; /*聯合中結構成員賦值*/
nd=’b';
printf(“%xn”, number.i);
getch();
}
答案: AB (0×41對應’A',是低位;Ox42對應’B',是高位)
6261 (number.i和共用一塊地址空間)