免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 12963 | 回复: 34
打印 上一主题 下一主题

[C] 面试的时候碰到的一个题目,这题目我做错了,高手解释下 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-09-10 17:40 |只看该作者 |倒序浏览
本帖最后由 zheguzai 于 2011-09-10 17:42 编辑

面试的时候碰到的一个题目,这题目我做错了,高手解释下
这个题目是一个选择题目
在32位X86下
  1. int main()
  2. {
  3.         union
  4.         {
  5.                 int k;
  6.                 char i[2];
  7.                        
  8.         }*s,a;
  9.        
  10.         s = &a;
  11.         s->i[0] = 0x39;
  12.         s->i[1] = 0x38;
  13.        
  14.         printf("a.k = %x\n",a.k);
  15.         return 0;
  16. }
复制代码
A:3839    B:3938   C:380039      D:不可预知

我当时选择的是B,回来后在机子上实验了下是A,有人能解释下么 ?

论坛徽章:
2
技术图书徽章
日期:2013-09-04 15:21:51酉鸡
日期:2013-11-01 21:20:20
2 [报告]
发表于 2011-09-10 17:56 |只看该作者
回复 1# zheguzai


因为是x86, x86的字节顺序是先低后高,little-endian

论坛徽章:
0
3 [报告]
发表于 2011-09-10 18:06 |只看该作者
回复 2# mirnshi


    搞了半天原来是在考大端小断存储啊,唉……

论坛徽章:
0
4 [报告]
发表于 2011-09-10 18:31 |只看该作者
回复 1# zheguzai


你怎么测出答案A的? 还有两个字节未定义,应该是D吧。

论坛徽章:
0
5 [报告]
发表于 2011-09-10 19:47 |只看该作者
D吧

论坛徽章:
0
6 [报告]
发表于 2011-09-10 19:51 |只看该作者
回复  zheguzai


你怎么测出答案A的? 还有两个字节未定义,应该是D吧。
ChiyuT 发表于 2011-09-10 18:31



    同样的看法。
    int多大?

论坛徽章:
0
7 [报告]
发表于 2011-09-10 20:52 |只看该作者
$ ./a.out
a.k = 8043839

论坛徽章:
0
8 [报告]
发表于 2011-09-10 21:01 |只看该作者
回复 7# mimepp


   我用C-FREE编译的,你们可以试试

论坛徽章:
1
白羊座
日期:2013-09-18 22:02:26
9 [报告]
发表于 2011-09-10 21:09 |只看该作者
其实,现在的CPU都支持大小端切换。所以,这是操作系统决定的。 我选D

论坛徽章:
0
10 [报告]
发表于 2011-09-10 21:16 |只看该作者
回复 10# file3
Oh my god~很惊人的论据 --!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP