n += 5;
这个语句相当于:
n = n + 5;
C语言中有如下的复合赋值运算符:
n += a; 相当于n = n + a; n -= a; 相当于n = n - a; n *= a; 相当于n = n * a; n /= a; 相当于n = n / a; n %= a; 相当于n = n % a; n <<= a; 相当于n = n << a; n >>= a; 相当于n = n >> a; n &= a; 相当于n = n & a; n ^= a; 相当于n = n ^ a; n |= a; 相当于n = n | a;
注意:如果右边不只是一个变量而是一个表达式,则需要看成一个整体.
比如: n /= a * b + c >> d 相当于 n = n / (a * b +c >> d),右边作为一个整体加括号。
即使是有同样优先级的也需要,请看下面的情况:
int n = 3; int m = 13; n *= 12 / m;
如果不加括号而是直接写成另外一种:n = n * 12 / m,显然这个计算结果大于0,而上面的为0。
复合运算要注意以下: