返回列表 回复 发帖

复合运算应用

#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  这一复合运算如何运算的呢?请老师举例说明吧,谢谢老师
是否有运算优先级的问题呢
这个主要复合运算符的优先级。
+= -= *= /=的优先级都非常低,并且遵循的是右结合。所以整个表达式最先计算的是

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
谢谢老师的回答
实际通常不会这样使用。因为这样不容易理解。
返回列表