网站首页 语言 会计 电脑 医学 资格证 职场 文艺体育 范文
当前位置:书香门第 > 计算机 > C语言

C语言复合赋值运算符

栏目: C语言 / 发布于: / 人气:2.54W

在C语言赋值中有一种特殊的赋值运算符,就是复合赋值运算符。下面是关于C语言复合赋值运算符的'相关介绍!

C语言复合赋值运算符

复合赋值运算符就是在赋值符“=”之前加上其它二目运算符可构成。比如大家可能最常看到这样的语句:

  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。

复合运算要注意以下:

复合运算符左边必须是变量;

复合运算符右边的表达式计算完成后才参与复合赋值运算。复合运算符常用于某个变量自身的变化,尤其当左边的变量名很长时,使用复合运算符书写更方便。

复合赋值运算的优先级符合C语言运算符的优先级表,结合方向为从右到左。