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

练习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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值