下列程序的输出结果是_______。 #include<stdio.h> main() { union { int k; char i[2]; }*s,a; s=&a;

admin2013-02-23  19

问题 下列程序的输出结果是_______。    #include<stdio.h>    main()    {      union      {        int k;        char i[2];     }*s,a;     s=&a;     s->i[0]=0x39;s->i[1]=0x38;     printf("%x\n",s->k);    }

选项 A、3839
B、3938
C、380039
D、390038

答案1

解析 在主函数定义了—个共用体变量a,及—个指向该变量的指针s。执行s->i[0]=0x39;s->i[1]=0x38;,将分别共用体的第—字节及第二字节存入十六进制数据0x39及0x38,由于在共用体中,变量共同占用存储空间,在输出s->k时,实际上就是输出开始写入的数据,而对于PC机,在存放血型数据时,低位在前,高位在后,故本题输出为3839。
转载请注明原文地址:https://kaotiyun.com/show/8OPp777K
0

最新回复(0)