问题 单项选择题

下列程序的输出结果为()。
main()
union un
char *name;
int age;
int pay;
s;
s.name="zhaoming";
s.age=32;
s.pay=3000;
printf("%d\n",s.age);

A.32

B.3000

C.0

D.不确定

答案

参考答案:B

解析:

本题考查的是联合体的有关概念。因为联合体是各个成员共享一段存储空间,此段存储空间最终存放的是最后存入的成员的值,所以题目中输出s.age实际上输出了最后存入的3000,因为3000已经把原来存入的s.age(32)的值覆盖。

选择题
名词解释