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

Ans:一方面C++语言没有明确规定大多数二元运算符的求值顺序,这提高了代码的生成效率。但是同时也会造成一些程序潜在缺陷,对于一些没有指定顺序的运算符,所在的表达式指向并修改了同一个运算对象,这种行为是未定义的。

另一方面,这种策略我觉得是可以接受的,对于不确定其求值顺序的运算,可以使用括号强制组合先进行运算,并且如果在表达式中修改了运算对象的值,就不要在该表达式的其他地方再使用这个值,这个是前提条件。

 posted on 2018-08-06 21:15  linlh  阅读(120)  评论(0编辑  收藏  举报