55.请写出以下程序的输出结果。(5分)
# include < stdio. h>
void main( )
{
union
{
long b,
char c[4];
}s;
s.b= 0xa0000L;
s.c[0]+='A';
printf("%d%c\n",s.c[2],s.c[0]);
}
源程序的每一句解释(见注释),运行结果,程序的功能和运行结果分析如下
#include<stdio.h>
void main()
{
union//定义一个包含长整型和字符型数组的联合结构
{
long b;//定义一个长整型
char c[4];//定义一个字符型数组
}s;//定义一个联合结构的变量s
s.b= 0xa0000L;//对联合中的长整型赋值
s.c[0]+='A';//对联合中的字符数组的第一个元素赋值
//以十进制整型输出字符数组的第三个元素
//以字符型输出字符数组的第一个元素
printf("%d%c\n",s.c[2],s.c[0]);
}
追问大哥,long b,你打成long b;答案是48A,其实我不懂怎么算出来的😂
追答如果是逗号,编译都通不过,运行结果是10A,不是48A.
追问OK,懂了,谢谢了