在赋值运算符“=”前加上其他一些双目运算符如“+”“-”等,可以构成复合赋值运算符。
C语言提供的复合赋值运算符有以下10个:
*=、/=、%=、+=、-=、<<=、>>=、&=、^=、|=
复合赋值运算符虽然是一个运算符,但可以完成运算、赋值两个运算符的功能。
例如:
x+=y 相当于 x=x+y
x*=y 相当于 x=x*y
复合赋值运算符的优先级与赋值运算符“=”相同,结合性也是自右至左。
【例题】赋值表达式及复合赋值表达式举例
程序如下:
#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);
}
程序执行结果为:
a=0,b=3,c=3
赋值运算符及复合赋值运算符均具有右结合性,所以a+=a-=a*=b+c的执行过程为:a+=a-=(a*=b+c),而a*=b+c等价于a=a*(b+c),执行后a的值为25;之后执行a-=a,等价于a=a-a,值为0,再计算a+=a,最后a的值仍为0。而表达式c=b=a+7/2等价于c=b=(a+7/2),b与c均被赋值为3。
已有 22658 名学员学习以下课程通过考试
最需教育客户端 软件问题一手掌握
去 App Store 免费下载 iOS 客户端
点击加载更多评论>>