
复合赋值运算复合赋值运算符,就是在赋值运算符“=”的前面加上其它运算符。
复合运算的一般形式为:
变量 复合赋值运算符 表达式
案例:a+=1;//和a=a+1;相同。
以下是C语言中的复合赋值运算符: += 加法赋值
-= 减法赋值
*= 乘法赋值
/= 除法赋值
%= 取模赋值
<<= 左移位赋值
>>= 右移位赋值
&= 逻辑与赋值
|= 逻辑或赋值

复合赋值运算程序范例
#include <stdio.h>
#define uchar unsigned char
uchar a,b,c,d,e,f,g,x,y,z;
main(){
a=1;
b=2;
c=3;
d=4;
e=5;
f=6;
g=7;
x=8;
y=9;
z=10;
a+=10;
b-=1;
c*=2;
d/=2;
e%=3;
f<<=1;
g>>=1;
x&=3;
y|=5;
printf("%d\t",a);
printf("%d\t",b);
printf("%d\t",c);
printf("%d\t",d);
printf("%d\t",e);
printf("%d\t",f);
printf("%d\t",g);
printf("%d\t",x);
printf("%d\t",y);}
说明:
1、a+=10;和a=a+10;等价//a=11
2、b-=1;和b=b-1;等价//b=1
3、c*=2;和c=c*2;等价//c=6
4、d/=2;和d=d/2;等价//d=2
5、e%=3;和e=e%3;等价//e=2
6、f<<=1;和f=f<<1;等价
//相当于f=0b0000 0110<<1;
//f=0b0000 1100=12;
7、g>>=1;和g=g>>1;等价
//相当于g=0b0000 0111>>1;
//所以g=0b0000 0011=3;
8、x&=3;和x=x&3;等价
//相当于x=0b0000 1000&0b0000 0011;
//所以x=0b0000 0000=0;
9、y|=5;和y=y|5;等价
//相当于y=0b0000 1001&0b0000 0101;
//所以y=0b0000 1101=13。