免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: zheguzai
打印 上一主题 下一主题

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

论坛徽章:
0
21 [报告]
发表于 2011-09-12 14:40 |只看该作者
是不是写错了int, 而是short
zzhzz18918 发表于 2011-09-10 21:03



    我觉得也该是short吧...要不这题就太没劲了

论坛徽章:
0
22 [报告]
发表于 2011-09-12 21:02 |只看该作者
回复 1# zheguzai


    这个我在Ubuntu下做的测试。结果输出是这个:
  1. a.k = 8043839
复制代码

论坛徽章:
0
23 [报告]
发表于 2011-09-13 10:39 |只看该作者
{:3_189:}{:3_189:}
自己在 Cygwin下看了看,

./a.exe

a.k=61153839

这个该选第D个答案吧!

论坛徽章:
0
24 [报告]
发表于 2011-09-14 19:05 |只看该作者
这个问题模棱两可的,毕竟要看大小端的。。。
不过一般X86平台上还是小端比较多。。

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
25 [报告]
发表于 2011-09-14 20:08 |只看该作者
这个问题模棱两可的,毕竟要看大小端的。。。
不过一般X86平台上还是小端比较多。。
fateeye 发表于 2011-09-14 19:05



    給個大端 x86 的例子唄

论坛徽章:
1
射手座
日期:2013-08-21 13:11:46
26 [报告]
发表于 2011-09-14 20:19 |只看该作者
又是union......

论坛徽章:
0
27 [报告]
发表于 2011-09-15 09:29 |只看该作者
本帖最后由 j3kljs02398j 于 2011-09-15 09:31 编辑

回复 1# zheguzai


    感觉这个题应该是选 D。

0. 大端小端?
          12楼说维基百科说x86的是little-endian,确实如此。link:http://en.wikipedia.org/wiki/X86
Byte-addressing is supported and words are stored in memory with little-endian byte order.
这个是在overview里。
答案A和B就在考这个大小端。但是选答案A和B的前提是int是16bit。

1.  int是16bit?
          int多少位? 这个没有统一规定。
  1. ANSI 标准要求long型整数至少应该是32位, 而short型和int型整数的长度至少应该是16位。
  2. ---《c陷阱与缺陷》第七章 7.3 整数的大小
复制代码
还有就是short,int,long的长度是非递减的。经验不足,不知道X86下有没有特别说明。
int如果是32位,C也是可能了。

2. a初始化了吗?
          a在main函数内,应该是在栈中分配,不会初始化,得到的是随机数据,不一定都是0。

论坛徽章:
0
28 [报告]
发表于 2011-09-15 11:42 |只看该作者
肯定不是A或B,楼主连续犯错误,不可原谅!

论坛徽章:
0
29 [报告]
发表于 2011-09-15 12:54 |只看该作者
1:联合体大小为sizeof(int),2个字节的内存中没有初始化,数值随机
2:大小端问题

论坛徽章:
2
白羊座
日期:2013-11-18 19:52:42辰龙
日期:2014-09-07 07:46:06
30 [报告]
发表于 2011-09-15 14:26 |只看该作者
回复  zheguzai


    维基百科上说所有的X86都是little-endian的

不过由于k的高位无法确定,所以我 ...
x5miao 发表于 2011-09-10 22:13



    支持,高位不确定!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP