基本內容
在賦值運算符當中,有一類C/C++獨有的複合賦值運算符。它們實際上是一種縮寫形式,使得對變數的改變更為簡潔。
Total=Total+3;
它的意思是本身的值加3,然後在賦值給本身。為了簡化,上面的代碼也可以寫成:
Total+=3;
同樣,x*=y+7 等價於x=x*(y+7) r%=p 等價於r=r%p
複合賦值運算符有下列這些:
符號 功能
+= 加法賦值
-= 減法賦值
*= 乘法賦值
/= 除法賦值
%= 模運算賦值
<<= 左移賦值
>>= 右移賦值
&= 位邏輯與賦值
|= 位邏輯或賦值
^= 位邏輯異或賦值
那么看了上面的複合賦值運算符,有人就會問,到底Total=Total+3;與Total+=3;有沒有區別?答案是有的,對於A=A+1,表達式A被計算了兩次,對於複合運算符A+=1,表達式A僅計算了一次。一般的來說,這種區別對於程式的運行沒有多大影響,但是當表達式作為函式的返回值時,函式就被調用了兩次(以後再說明),而且如果使用普通的賦值
運算符,也會加大程式的開銷,使效率降低。