4.1 基础
4.2 算术运算符
- C++11 标准中,商一律向0取整。
4.3 逻辑与关系运算符
- 进行比较运算时除非比较的对象是布尔类型,否则不要使用布尔字面值 true 和 false 作为运算对象。
4.4 赋值运算符
4.5 递增和递减运算符
- 除非必须,否则不用递增递减运算的后置版本。后置版本将对象原始值的副本作为右值返回。
- 在复合表达式中,没有规定运算对象的求值顺序,所以要提防在复合表达式中错用递增递减运算符。
4.6 成员访问运算符
- 解引用运算符的优先级低于点运算符。
4.7 条件运算符
- 条件运算符可以嵌套使用;条件运算符的优先级非常低。
4.8 位运算符
- 关于符号为如何处理并没有明确的规定,建议仅将位运算符用于处理无符号类型。
- 如果运算对象是较小的整型,经过位运算它的值就会自动提升成大的整型。
4.9 sizeof 运算符
- 对 string 对象或者 vector 对象执行 sizeof 运算只返回该类型固定部分的大小而不会计算具体的该对象中元素占用的空间。
- 对数组执行 sizeof 运算会得到整个数组所占的空间大小(sizeof 运算不会吧数组换成指针来处理)。
- sizeof 返回的是表达式结果类型的大小,并不计算其运算对象的值,所以当对象为解引用指针时,指针不需有效。
4.10 逗号运算符
- 首先对左侧的表达式求值,然后将求值结果弃掉。然后对右侧的表达式求值并返回之。
4.11 类型转换
- P142 ,无符号类型的转换。