在賦值符“=”之前加上其它二目運算符可構(gòu)成復(fù)合賦值符。如
+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=。 構(gòu)成復(fù)合賦值表達式的一般形式為: 變量 雙目運算符=表達式 它等效于 變量=變量 運算符 表達式 例如: a+=5 等價于a=a+5 x*=y+7 等價于x=x*(y+7) r%=p 等價于r=r%p
逗號運算符
C語言中逗號“,”也是一種運算符,稱為逗號運算符。 其功能是把兩個表達式連接起來組成一個表達式, 稱為逗號表達式。
其一般形式為: 表達式1,表達式2 其求值過程是分別求兩個表達式的值,并以表達式2的值作為整個逗號表達式的值。
void main(){
int a=2,b=4,c=6,x,y;
x=a+b,y=b+c;
printf("y=%d,x=%d",y,x);
}
a<--2,b<--4,c<--6,x<--0,y<--0
x<--a+b,y<---b+c
本例中,y等于整個逗號表達式的值,也就是表達式2的值,x是第一個表達式的值。對于逗號表達式還要說明兩點:
1.逗號表達式一般形式中的表達式1和表達式2 也可以又是逗號表達式。例如: 表達式1,(表達式2,表達式3) 形成了嵌套情形。因此可以把逗號表達式擴展為以下形式: 表達式1,表達式2,…表達式n 整個逗號表達式的值等于表達式n的值。
2.程序中使用逗號表達式,通常是要分別求逗號表達式內(nèi)各表達式的值,并不一定要求整個逗號表達式的值。
3.并不是在所有出現(xiàn)逗號的地方都組成逗號表達式,如在變量說明中,函數(shù)參數(shù)表中逗號只是用作各變量之間的間隔符。
[Practice] //arithmeticint a,b,c;
float d;
a=11;
b=235;
c=a+b-a*b;
d=(float)c/(float)a;
a=c/a;’Vtable
a,2,0
b,2,0
c,2,0
d,4,0.0
of Vtable
’Vupdate
1,0;2,0;3,0
4,0.0
1,11
2,235
3,-2339
4,-212.636368
1,-212
of Vupdate
of Practice
[Practice] //1int a,b,c1,c2;
a=25;
b=3243;
c1=b/a;
c2=b%a;’Vtable
a,2,0
b,2,0
c1,2,0
c2,2,0
of Vtable
’Vupdate
1,0;2,0;3,0;4,0
1,25
2,3243
3,129
4,18
of Vupdate
of Practice
[Practice] //1int a,b,c;
a=25;
b=40;
c=a+b,c+35;’Vtable
a,2,0
b,2,0
c,2,0
of Vtable
’Vupdate
1,0;2,0;3,0
1,25
2,40
3,65
of Vupdate
of Practice
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |