c++程序中 a+=a*=a-=a/b怎么算

 我来答
匿名用户
2019-06-03
展开全部
这个表达式包含很多个赋值运算符,它们的结合性都是自右至左。下面分析这个题目:
a += a *= a -= a / b,a / b 最先求值,然后把a的值减去a/b。a -= a / b是赋值运算,只要赋值成功,就返回1,所以原表达式变成a += a *= 1,注意此时a的值已经被赋值运算改变。下一步执行a *= 1,它等价于 a = a * 1,而一个数乘1后它的值不变,所以经过这个赋值运算,a的值不变,同时赋值成功,原表达式变为a += 1,系统执行对变量a加1的操作,表达式执行结束。
oycs2003
推荐于2018-04-04 · TA获得超过2147个赞
知道小有建树答主
回答量:627
采纳率:0%
帮助的人:747万
展开全部
可以分几步来分析
为了更好理解,不妨定义一下a b的值,就a=10 ,b=2吧
第一步
a-=a/b a=a-a/b=10-10/2=10-5=5 这里把5赋给a
第二步
a*=5 a=a*5=5*5=25 因为在第一步把5赋给a了,这时把25赋给a
第三步
a+=25 a=a+25=25+25=50 同理。第二步的时候a得到新的赋值

参考资料: 如果您的回答是从其他地方引用,请表明出处

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2009-09-03
展开全部
从右向左,依次计算

a+=a*=a-=a/b
第1步:计算a-=a/b,即a=a-a/b,生成新的a
第2步:计算a*=(新的a),即a=a*a,生成新的a
第3步:计算a+=(新的a),即a=a+a,生成新的a
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友8de927025
2009-09-03 · 超过18用户采纳过TA的回答
知道小有建树答主
回答量:81
采纳率:0%
帮助的人:0
展开全部
+=, -=, *= /= 是同等优先级的运算符,它们的结合顺序是 自右向左的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hollowsky222
2009-09-03 · TA获得超过267个赞
知道答主
回答量:218
采纳率:0%
帮助的人:110万
展开全部
从右到左计算。先计算a/b,依次类推最后a = a+a*(a-a/b)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式