位置:首页 > 软件操作教程 > 编程开发 > C语言 > 问题详情

C语言 复合赋值运算符

提问人:刘团圆发布时间:2020-11-28

在赋值运算符“=”前加上其他一些双目运算符如“+”“-”等,可以构成复合赋值运算符。

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。

继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部