在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語言運算符的優先級表,結合方向爲從右到左。