- 表达式可以没有操作符,但一定有操作数:
- 理解表达式中含有多个操作符时涉及操作符的优先级、关联性以及操作数的计算顺序:
- 如果操作符需要的操作数类型不同,则会发生一些默认的类型转换:
- 什么叫
Overloaded Operators
:无非就是在自定义类型上赋予已存在操作符新的含义: - Lvalues和Rvalues:当我们将对象作为右值时,我们使用的是它的value,而当我们使用对象作为左值时,我们使用的是它的实体(内存的位置):
- 仅有四个操作符(
&&
,||
,?:
和,
)保证了操作数被计算的顺序: %
操作符的符号:- 多用前缀自增
++i
的原因是降低拷贝开销: - 合理炫技,愉悦身心:以及
- 优先级在操作符优先级不同时起作用,而结合性在操作符优先级相同时起作用,它们决定了如何解析表达式,却无法决定操作数本身的计算顺序:,以及
- 在有符号类型上进行位运算得到的结果是依赖机器实现的:
sizeof
操作符并不计算表达式,所以它关心其是否合法:- operands of unsigned type(integral promotions):
- Named Casts:
reinterpret_cast
很危险:- Old- style Casts的弊端是类型转换发生的更加隐蔽: