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語言運算子的優先順序表,結合方向為從右到左。