作业帮 > 综合 > 作业

下列程序正确的运行结果为( ).

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/24 03:33:25
下列程序正确的运行结果为( ).
#include
main()
{
union u
{char *name;
int age;
int income;
} s;
s.name="WANGLING";
s.age=28;
s.income=1000;
printf("%d\n",s.age);
}
最后将输出1000
因为是联合体,union,也就是说
s.name
s.age
s.income
占用同一个内存地址,它的大小为4字节的int型.
因此在最后运行
s.income = 1000之后,
这个内存被赋值为数字1000.
因此尽管最后打印时选择了
s.age
但是因为它所在的内存地址是
s.income这个变量的地址相同.
因此还是会打印1000