C忑 发表于 2017-6-15 21:57:28

初学C 求大神帮忙!!!

使用复合运算符计算 a+=a*=a/=a-10   求大神解答

落叶飞空 发表于 2017-6-16 09:11:43

百度一下C语言运算符的优先级按顺序计算即可:
这里从右至左一次运算即可:
假设a=21
a=a-10=11
a/=a=> a=1
a*=a=> a=1
a+=a => a=2

nano_core 发表于 2017-6-18 20:26:28

楼上答案有点出入,
需要明确,a-10这种写法不会改变a的值。
所以,假设a=21,从右向左计算,
a-10=11。
第一步:
a/=11 -> a=a/11=21/11=1 这步算完a值为1
第二步:
a*=a -> a=a*a=1*1=1 这步算完a值为1
第三步:
a+=a -> a=a+a=1+1=2 这步算完a值为2
效果等同于:a+= ( a*= ( a/=a-10 ) )每一个括号的计算结果返回a的值
页: [1]
查看完整版本: 初学C 求大神帮忙!!!