位置:首頁 > 軟件操作教程 > 編程開發(fā) > C語言 > 問題詳情

C語言 復(fù)合賦值運(yùn)算符

提問人:劉團(tuán)圓發(fā)布時間:2020-11-28

在賦值運(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。

繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部