複合賦值運算符_xuanying_china-ChinaUnix博客

複合的賦值運算符,又稱爲帶有運算的賦值運算符,也叫賦值縮寫。

例如:i=i j;可表示爲 i =j;這裏 =是複合賦值運算符。

同樣的共有10種這樣的運算符,它們是:

= 加賦值

-= 減賦值

*= 乘賦值

/= 除賦值

%= 求餘賦值

= 按位與賦值

| = 按位或賦值

^= 按位異或賦值

<<= 左移位賦值 >>= 右移位賦值

<> 當右操作數又是一個賦值表達式時,形成多重賦值表達式。例如:

i=j=0; //結果i、j的值都爲0

構成複合賦值表達式的一般形式

  變量 雙目運算符=表達式

它等效於

變量=變量 運算符 表達式

例如:

a =5 等價於a=a 5

x*=y 7 等價於x=x*(y 7)

r%=p 等價於r=r%p

運算符實例等價於=n=25 =n = 25n=n 25-=n -= 25n=n-25*=n *= 25n=n*25/=n /= 25n=n/25%=n%= 25n=n%<<=n <<= 25n=n<<25>>=n >>= 25n=n>>25=n = OxF2F2n=nOxF2F2^=n ^= OxF2F2n=n ^ OxF2F2|=n |= OxF2F2n=n | OxF2F2

1.= 賦值運算符   

變量=表達式 如:a=3;將a的值賦爲3   

2./= 除後賦值   

變量/=表達式 如:a/=3;即a=a/3   

3.*= 乘後賦值   

變量*=表達式 如:a*=3;即a=a*3   

4.%= 取模後賦值   

變量%=表達式 如:a%=3;即a=a%3   

5. = 加後賦值   

變量 =表達式 如:a =3;即a=a 3   

6.-= 減後賦值   

變量-=表達式 如:a-=3;即a=a-3   

7.<<= 左移後賦值   

變量<<=表達式 左移就是將<

8.>>= 右移後賦值   

變量>>=表達式 右移運算符是用來將一個數的各二進制位右移若干位,移動的位數由右操作數指定(右操作數必須是非負值),移到右端的低位被捨棄,對於無符號數,高位補0。對於有符號數,某些機器將對左邊空出的部分用符號位填補(即“算術移位”),而另一些機器則對左邊空出的部分用0填補(即“邏輯移位”)。注意:對無符號數,右移時左邊高位移入0;對於有符號的值,如果原來符號位爲0(該數爲正),則左邊也是移入0。如果符號位原來爲1(即負數),則左邊移入0還是1,要取決於所用的計算機系統。有的系統移入0,有的系統移入1。移入0的稱爲“邏輯移位”,即簡單移位;移入1的稱爲“算術移位”。   

9.= 按位與後賦值   

變量=表達式 按位與是指:參加運算的兩個數據,按二進制位進行“與”運算。如果兩個相應的二進制位都爲1,則該位的結果值爲1;否則爲0。這裏的1可以理解爲邏輯中的true,0可以理解爲邏輯中的false。按位與其實與邏輯上“與”的運算規則一致。邏輯上的“與”,要求運算數全真,結果才爲真。若,A=true,B=true,則A∩B=true   

10. ^= 按位異或後賦值   

變量^=表達式 參與運算的兩個量按照對應的位進行異或運算,且   0^0→0, 0^1→1, 1^0→1, 1^1→0   此外,一個數與0異或仍保持不變,即a^0=a   一個數與自己異或結果爲0,即a^a=0   

11.|= 按位或後賦值   

變量|=表達式 參與運算的兩個量按照對應位進行或運算,且0|0→0, 0|1→1, 1|0→1, 1|1→1

注意

1. 多重賦值表達式不能出現在變量說明中。例如:   

int i=j=0;   是非法的。   

例:有變量說明   

int a=2,b;   

指出下面表達式運算後a和b的結果。   

b =b= a;   

答:a爲3,b爲6。   

<> 有時將賦值運算與比較運算結合在一起形成嵌入賦值。例如:   

while ((ch=getchar())!=’n');   

這條語句的含義是:等待用戶按下回車鍵後程序向下執行。   

2. x *= y 8等價於x=x*(y 8),不等價於 x = x*y 8。   

同樣:z = y-x等價於z = z (y-x),而不等價於z = z y -x。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章