【赋值运算符的左侧运算对象必须是一个可修改的左值。
赋值运算的结果是它的左侧运算对象,并且是一个左值。相应的,结果的类型就是左侧运算对象的类型。
赋值运算满足右结合律:
int ival, jval;
ival = jval = 0;
】
【赋值运算符优先级较低:赋值语句经常会出现在条件当中。因为复制运算的优先级相对较低,所以通常需要给赋值部分加上括号使其符合我们的原意。
int i = get_value();
while(i != 42)
{
// 其他处理
i = get_value();
}
int i;
while((i = get_value()) != 42)
{
// 其他处理
}
以上两段代码具有相同的作用,下面一段代码更加简单直接。】
【复合赋值运算符:我们经常需要对对象施以某种运算,然后把计算的结果再赋给该对象。
+=, -=, *=, /=, %= // 算数运算符
<<=, >>=, &=, ^=, |= // 位运算符】