A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 米匠 中级黑马   /  2014-10-8 15:01  /  1733 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. void foo(void)
  2. {
  3.     unsigned int a = 6;
  4.     int b = -20;
  5.     (a+b > 6) ? puts("> 6") : puts("<= 6");
  6. }
复制代码

7 个回复

倒序浏览
12楼发布答案和讲解

点评

请不要回复水贴。  发表于 2014-10-8 16:25
回复 使用道具 举报
条件?结果1:结果2
如果条件满足,则输出结果1。不满足输出结果2。
我觉得应该是这样的。
回复 使用道具 举报
这 个问题测试你是否懂得C语言中的整数自动转换原则,我发现有些开发者懂得极少这些东西。不管如何,这无符号整型问题的答案是输出是 ">6"。原因是当表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型。因此-20变成了一个非常大的正整数,所以该表达式 计算出的结果大于6。这一点对于应当频繁用到无符号数据类型的嵌入式系统来说是丰常重要的。如果你答错了这个问题,你也就到了得不到这份工作的边缘。
回复 使用道具 举报
魔法少年十三 来自手机 中级黑马 2014-10-9 21:09:39
报纸
所以我讨厌隐式表达
回复 使用道具 举报
整数自动转换确实不太懂,学习了
回复 使用道具 举报
蜗牛快跑 发表于 2014-10-8 20:07
条件?结果1:结果2
如果条件满足,则输出结果1。不满足输出结果2。
我觉得应该是这样的。 ...

目前我也只能看懂  三木运算了,,结果1,结果2,不懂。哈哈
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马