本站首页    管理页面    写新日志    退出


«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告

戒除浮躁,读好书,交益友


我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:邢红瑞的blog
日志总数:523
评论数量:1142
留言数量:0
访问次数:9692121
建立时间:2004年12月20日




[c++]一道非常有趣的c面试题 
原创空间,  文章收藏,  软件技术,  电脑与网络

邢红瑞 发表于 2008/10/23 15:30:14

我遇到一道面试题main(){ hello(3,4);  int a=1,b=2,c=2; while(a<b<c) {  int t;  t=a;  a=b;  b=t;  c--; }  printf("%d \n",c); return 0;}求c的值,我想了一下,写出2,我认为不进循环。问了一下其他的人,结果都认为不进循环,因为先比较b<c,那样是2不小于2,所有结果为0,a不小于0,所以不进循环。后来小方同学说大家的想法是错的,这和a=b=c不同,不是先比较b<c,而是(a<b)<c,结果c为0。试了一下,vc 8,vc6 ,lcc 结果都是0,有必要看一下c编译器的实现了。看了一下c99的规范,严格的说,还没有一款编译器完全实现了C99标准。 §6.5.9 第86页 89) The expression a<b<c is not interpreted as in ordinary mathematics. As the syntax indicates, itmeans (a<b)<c; in other words, ‘‘if a is less than b, compare 1 to c; otherwise, compare 0 to c’’. c程序员面试前,必须熟读c99规范。


阅读全文(5670) | 回复(4) | 编辑 | 精华
 


回复:一道非常有趣的c面试题
原创空间,  文章收藏,  软件技术,  电脑与网络

gdj(游客)发表评论于2010/11/3 13:46:15

这个是看操作符的结合性把 http://www.cppreference.com/wiki/operator_precedence 赋值号是从右到左的结合,< 号是从左到右结合的


个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


回复:一道非常有趣的c面试题
原创空间,  文章收藏,  软件技术,  电脑与网络

pipalcn@gmail.com(游客)发表评论于2008/12/27 16:44:39

这个结果是0很正常呀,好好分析就知道了

个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


回复:一道非常有趣的c面试题
原创空间,  文章收藏,  软件技术,  电脑与网络

真不准发表评论于2008/10/24 18:38:05

我喜欢程序员的KISS原则。精力应该放在核心业务逻缉和创新上。

个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


回复:一道非常有趣的c面试题
原创空间,  文章收藏,  软件技术,  电脑与网络

kk(游客)发表评论于2008/10/23 16:23:06

因为省了加个括号的工夫,导致所有后面阅读代码的人必须熟读c99的规范的诡异的一行。。。

个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.348 second(s), page refreshed 144767788 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号