c++程序中 a+=a*=a-=a/b怎么算
9个回答
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的操作,表达式执行结束。
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的操作,表达式执行结束。
展开全部
可以分几步来分析
为了更好理解,不妨定义一下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得到新的赋值
为了更好理解,不妨定义一下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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
+=, -=, *= /= 是同等优先级的运算符,它们的结合顺序是 自右向左的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
从右到左计算。先计算a/b,依次类推最后a = a+a*(a-a/b)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询