返回列表 发帖

复合运算应用

#include<stdio.h>
main()
{
int a;
printf("please input:\n");
scanf("%d",&a);
a+=a*=a/=a-6;
printf("the result is %d\n",a);
}

a+=a*=a/=a-6  这一复合运算如何运算的呢?请老师举例说明吧,谢谢老师
分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友

是否有运算优先级的问题呢

TOP

这个主要复合运算符的优先级。
+= -= *= /=的优先级都非常低,并且遵循的是右结合。所以整个表达式最先计算的是

a/=a-6
假设a=7,则
a/=a-6=a/(a-6)=7
然后运算
a*=a/=a-6=a*(a/=a-6)=7*7=49
最后运算
a+=a*=a/=a-6=a+(a*=a/=a-6)=49+49=98

TOP

谢谢老师的回答

TOP

实际通常不会这样使用。因为这样不容易理解。

TOP

返回列表