【算术运算符(优先级由上到下依次降低,左结合律):
一元正号(+)、一元负号(-);
乘法(*)、除法(/)、求余(%);
加法(+)、减法(-)。】
【算数运算符都能作用于任意算数类型,以及任意能转换为算数类型的类型。算数运算符的运算对象和求值结果都是右值。
在表达式求值之前,小整数类型的运算对象被提升成较大的整数类型,所有运算对象最终会转换成同一类型。(解释了下段代码的结果)
bool b = true; // true 的bool 类型参与算数运算时,整型值为1
bool b2 = -b; // b2 结果为true(除0 之外的值赋给bool 类型,结果均为true)
】
【在除法运算中,如果两个运算对象的符号相同则商为正,否则商为负。C++ 新标准规定商一律向0 取整(直接切除小数部分)。
如果m%n 不等于0,则它的符号和m 相同。
除了-m 导致溢出的特殊情况,其他时候:(-m)/n = m/(-n) = -(m/n),m&(-n) = m&n,(-m)%n = -(m%n)。】