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) 编辑 收藏 举报