题目如下:
请输出下列函数的输出结果:
#include <stdio.h>
union
{
int i;
char x[2];
}a;
int main(int argc, const char *argv[])
{
a.x[0] = 10;
a.x[1] = 1;
printf("%d\n",a.i);
return 0;
}
分析:
- union共用体的特点是里面是几种变量都共用同一块空间,在字符数组 x中输入的数据也会保存在整型变量i的空间里;
- 电脑存储数据采用的是小端模式,即低地址存低位,高地址存高位;
- 地址空间中的数据用十六进制显示为0x10a,经转换:a * 16^0 + 1 * 16^2 = 266;