c语言面试找错题.docxVIP

  • 4
  • 0
  • 约1.67千字
  • 约 11页
  • 2020-11-06 发布于天津
  • 举报
PAGE PAGE # c语言面试找错题 1、 C语言同意一些令人震惊的结构,下面的结构是合法的吗, 如果是它做些什么? int a = 5, b = 7, c; c = a+++b; 这个问题将做为这个测验的一个愉快的结尾。 不管你相不相信, 上面的例子是完全合乎语法的。问题是编译器如何处理它 ?水平不高 的编译作者实际上会争论这个问题, 根据最处理原则,编译器应当能 处理尽可能所有合法的用法。因此,上面的代码被处理成: PAGE PAGE # c = a++ + b; 因此,这段代码持行后a = 6, b = 7, c = 12 。 如果你知道答案,或猜出正确答案,做得好。如果你不知道答 案,我也不把这个当作问题。 我发现这个问题的最大好处是这是一个关于代码编写风格,代 码的可读性,代码的可修改性的好的话题。 2、下面的代码输出是什么,为什么? void foo(void) un sig ned int a = 6; int b = -20; (a+b 6) ? puts( 6 ) : puts( = 6 } 这个问题测试你是否懂得 C语言中的整数自动转换原则,我 发现有些开发者懂得极少这些东西。 不管如何,这无符号整型问题的 答案是输出是6 。原因是当表达式中存在有符号类型和无符号类型 时所有的操作数都自动转换为无符号类型。因此-20变成了一个非常 大的正

文档评论(0)

1亿VIP精品文档

相关文档