C語言 復(fù)合賦值運(yùn)算符
在賦值運(yùn)算符“=”前加上其他一些雙目運(yùn)算符如“+”“-”等,可以構(gòu)成復(fù)合賦值運(yùn)算符。
C語言提供的復(fù)合賦值運(yùn)算符有以下10個:
*=、/=、%=、+=、-=、<<=、>>=、&=、^=、|=
復(fù)合賦值運(yùn)算符雖然是一個運(yùn)算符,但可以完成運(yùn)算、賦值兩個運(yùn)算符的功能。
例如:
x+=y 相當(dāng)于 x=x+y
x*=y 相當(dāng)于 x=x*y
復(fù)合賦值運(yùn)算符的優(yōu)先級與賦值運(yùn)算符“=”相同,結(jié)合性也是自右至左。
【例題】賦值表達(dá)式及復(fù)合賦值表達(dá)式舉例
程序如下:
#include<stdio.h>
main()
{
int a,b,c;
a=5;b-2,c-3;
a+=a-=a*=b+c;
c=b=a+7/2;
printf ("a=%d,b=%d,c=%d\n",a,b,c);
}
程序執(zhí)行結(jié)果為:
a=0,b=3,c=3
賦值運(yùn)算符及復(fù)合賦值運(yùn)算符均具有右結(jié)合性,所以a+=a-=a*=b+c的執(zhí)行過程為:a+=a-=(a*=b+c),而a*=b+c等價于a=a*(b+c),執(zhí)行后a的值為25;之后執(zhí)行a-=a,等價于a=a-a,值為0,再計算a+=a,最后a的值仍為0。而表達(dá)式c=b=a+7/2等價于c=b=(a+7/2),b與c均被賦值為3。
點(diǎn)擊加載更多評論>>