第四章 4.1.2节练习 & 4.1.3节练习

来源:互联网 发布:周克华事件真相知乎 编辑:程序博客网 时间:2024/05/23 12:05

练习4.1

表达式5+10*20/2的求值结果是多少?

解答:

#include <iostream>using namespace std;int main(){cout << 5 + 10 * 20 / 2 << endl;}

结果是105


练习4.2

根据4.12节中的表,在下述表达式的合力位置添加括号,使得添加括号后运算对象的组合与添加括号前一致。

(a) *vec.begin()

(b) *vec.begin()+1

解答:

(a) *(vec.begin())

(b)(*(vec.begin()))+1


练习4.3

C++语言没有明确规定大多数二元运算符的求值顺序,给编译器优化留下了余地。这种策略实际上是在代码生成效率和程序潜在缺陷之间进行了权衡,你认为可以接受吗?请说出你的理由。

解答:

这个问题问的很专业了,这涉及到了编译器对代码的翻译结果,以及对结果进行如何的处理。

但是,这里个人不是很清楚这个策略做了哪种权衡,所以不好说是否能接受。

不过,对于现在C++编译器的发展,由于这个空间的存在,应该会被优化的更好,让我们能得到更高效的程序。


0 0
原创粉丝点击