C++ primer 第四章 表达式 4.1

一元运算符  二元  三元  其中函数调用也算一种特殊的运算符 它对运算对象的数量没有限制。
 优先级  结合律   运算对象的求值顺序
重载运算符:1。运算对象的类型和返回值的类型 可改变 2。运算对象的个数 运算符的优先级 和结合律都无法改变
左直和右值的归纳:1.当一个对象被用作右值的时候 用的是对象的值  2.当对象被用作左值的时候 用的是对象的身份
1. &&  :左操作数不能确定表达式的值,才需要计算右操作数
2. || : 左操作数不能确定表达式的值,才需要计算右操作数
3.  ?:    ( cond ? expr1:expr2)  cond 为真时, 计算expr1 ;   cond 为假时计算 expr2
4   ,   逗号表达式从左到右计算,  结果是最右边的值

两条经验处理复合表达式:

1.拿不准的时候多使用括号来进行

2.如果改变了某个运算对象的值 在表达式的其他地方就不要再使用这个运算对象

 

C++语言没有明确规定大多数二元运算符的求值顺序,给编译器优化留下了余地。这种策略实际上是在代码生成效率和程序潜在缺陷之间进行了权衡,这可以接受吗?
可以接受。当C++中采⽤这种策略时,编译器可根据需要来即时抉择求值顺序,从⽽实现尽可能高的执行效率,并且程序员可以通过一些技巧来规避潜在执行缺陷。

 

posted on 2019-12-01 20:58  Zhw_forever  阅读(147)  评论(0编辑  收藏  举报