单选题
以下程序的输出结果是()。
以下程序的输出结果是()。
union myun
{ struct
{ int x, y, z; } u;
int k;
} a;
main()
{ a.u.x=4; a.u.y=5; a.u.z=6;
a.k=0;
printf("%d\n",a.u.x);}
A
4
B
5
C
6
D
0
答案解析
正确答案:D
解析:
易错
myun是一个联合体结构,对于联合体的内存分布,这里一两句话说不清楚,展开一下就是上图示意的这个,其中K和U是重叠的,如果要问为什么U和K重叠,好吧,去看联合体的内存分配方式。
弄清楚这个问题之后就好办了,可以很明显地发现a.u.x和a.k指向的是同一个int型内存区,也就是说它们的值不管何时都是完全一样的。
所以改变a.u.x,a.k会受到影响,反正亦然!
因为执行了a.k=0;这一句,所以a.u.x也就变成了0,所以输出的是0.
myun是一个联合体结构,对于联合体的内存分布,这里一两句话说不清楚,展开一下就是上图示意的这个,其中K和U是重叠的,如果要问为什么U和K重叠,好吧,去看联合体的内存分配方式。
弄清楚这个问题之后就好办了,可以很明显地发现a.u.x和a.k指向的是同一个int型内存区,也就是说它们的值不管何时都是完全一样的。
所以改变a.u.x,a.k会受到影响,反正亦然!
因为执行了a.k=0;这一句,所以a.u.x也就变成了0,所以输出的是0.
相关题目
单选题
8253作为定时器和计数器时( )。
单选题
当用8259A管理INTR中断时,要发出EOI命令结束中断是操作哪个命令字( )。
单选题
中断控制方式的优点是( )。
单选题
欲读取8259A的IRR的内容,必须先写哪个命令字( )。
单选题
要屏蔽某外部中断,可通过改变8259A什么的内容实现( )。
单选题
若8259A工作在自动循环方式下,当前IR1上的中断请求已执行并返回,则8个中断源中优先级最高的是( )。
单选题
下列说法中,错误的是( )。
单选题
80486CPU工作在实模式下执行指令INT 30H时,中断服务程序的入口地址存放在以哪个开始的两个字单元中( )。
单选题
PC机中为使工作于一般全嵌套方式的8259中断控制器能接受下一个中断请求,在中断服务程序结束处应( )。
单选题
4片8259级联工作,可管理的外部中断源的级数为( )。
