C語(yǔ)言復(fù)合賦值運(yùn)算符
在C語(yǔ)言的賦值中有一種特殊的賦值運(yùn)算符,就是復(fù)合賦值運(yùn)算符。下面是關(guān)于C語(yǔ)言復(fù)合賦值運(yùn)算符的相關(guān)介紹!
復(fù)合賦值運(yùn)算符就是在賦值符“=”之前加上其它二目運(yùn)算符可構(gòu)成。比如大家可能最?吹竭@樣的'語(yǔ)句:
n += 5;
這個(gè)語(yǔ)句相當(dāng)于:
n = n + 5;
C語(yǔ)言中有如下的復(fù)合賦值運(yùn)算符:
n += a; 相當(dāng)于n = n + a;
n -= a; 相當(dāng)于n = n - a;
n *= a; 相當(dāng)于n = n * a;
n /= a; 相當(dāng)于n = n / a;
n %= a; 相當(dāng)于n = n % a;
n <<= a; 相當(dāng)于n = n << a;
n >>= a; 相當(dāng)于n = n >> a;
n &= a; 相當(dāng)于n = n & a;
n ^= a; 相當(dāng)于n = n ^ a;
n |= a; 相當(dāng)于n = n | a;
注意:如果右邊不只是一個(gè)變量而是一個(gè)表達(dá)式,則需要看成一個(gè)整體.
比如:
n /= a * b + c >> d 相當(dāng)于 n = n / (a * b +c >> d),右邊作為一個(gè)整體加括號(hào)。
即使是有同樣優(yōu)先級(jí)的也需要,請(qǐng)看下面的情況:
int n = 3;
int m = 13;
n *= 12 / m;
如果不加括號(hào)而是直接寫(xiě)成另外一種:n = n * 12 / m,顯然這個(gè)計(jì)算結(jié)果大于0,而上面的為0。
復(fù)合運(yùn)算要注意以下:
復(fù)合運(yùn)算符左邊必須是變量;
復(fù)合運(yùn)算符右邊的表達(dá)式計(jì)算完成后才參與復(fù)合賦值運(yùn)算。復(fù)合運(yùn)算符常用于某個(gè)變量自身的變化,尤其當(dāng)左邊的變量名很長(zhǎng)時(shí),使用復(fù)合運(yùn)算符書(shū)寫(xiě)更方便。
復(fù)合賦值運(yùn)算的優(yōu)先級(jí)符合C語(yǔ)言運(yùn)算符的優(yōu)先級(jí)表,結(jié)合方向?yàn)閺挠业阶蟆?/p>
【C語(yǔ)言復(fù)合賦值運(yùn)算符】相關(guān)文章: