C语言
#include<stdio.h>
int main(){
int i=7,j=7;
i+=1; j=j+1;
printf("i=%d j=%d\n",i,j);//i=8 j=8
i-=1; j=j-1;
printf("i=%d j=%d\n",i,j);//i=7 j=7
i*=2; j=j*2;
printf("i=%d j=%d\n",i,j);//i=14 j=14
i/=2; j=j/2;
printf("i=%d j=%d\n",i,j);//i=7 j=7
i%=2; j=j%2;
printf("i=%d j=%d\n",i,j);//i=1 j=1
return 0;
}
复合赋值运算符就是在赋值符“=”前面加上一个运算符。
例如上述代码中的”i+=1“,就是一个加号和等号组成的复合赋值运算符。等同于”i=i+1“。
在C语言中复合赋值运算符运算符在赋值符前面,完美的规避了把加号减号当作是正负号的问题。例如"i=+1",我们不清楚要表达的是“i=i+1”,还是把正1(+1)赋值给i。
C++
#include<iostream>
using namespace std;
int main(){
int i=7,j=7;
i+=1; j=j+1;
cout<<"i="<<i<<" j="<<j<<endl;//i=8 j=8
i-=1; j=j-1;
cout<<"i="<<i<<" j="<<j<<endl;//i=7 j=7
i*=2; j=j*2;
cout<<"i="<<i<<" j="<<j<<endl;//i=14 j=14
i/=2; j=j/2;
cout<<"i="<<i<<" j="<<j<<endl;//i=7 j=7
i%=2; j=j%2;
cout<<"i="<<i<<" j="<<j<<endl;//i=1 j=1
return 0;
}