基础概念:
组合运算符和运算对象(优先级与结合律)
运算对象转换(类型转换)
运算符重载(<< >>之类)
左值和右值
算术运算符
一元负号对布尔值的运算不起作用
提示:注意溢出和其它算术运算异常
逻辑和关系运算符
逻辑与和逻辑或运算符
逻辑非运算符
关系运算符
赋值运算符
赋值运算满足右结合律
赋值运算优先级较低
注意:切勿混淆相等运算符和相等运算符
复合赋值运算符
递增和递减运算符
建议:除非必须,否则不建议使用递增递减运算符后置版本。
*p++ = *(p++) //简洁可以成为一种美德
成员访问运算符(.和->)
条件运算符 A>B ? A : B;类似这种
位运算符:
建议仅将位运算符用于处理无符号类型。
位移运算符
位求反运算符
位与 位或 位异或运算符
移位运算符(又叫IO运算符) 满足左结合律
cout<<"hi"<<"there"<<endl;
sizeof运算符
逗号运算符
类型转换
隐式转换 例如:int ival = 3.14 + 3;
算术转换
整型提升(其实就是超出范围了把自动类型扩大)
其它隐式转化
数组转换成指针,,
显式转换
命名的强制类型转换
static_cast const_cast reinterpret_cast
附:运算符优先表