a+=a-=a*a 不等价于 a=a+(a-(a*a))
原因: 原式运行过程为先计算a-=a*a, 即a=a-(a*a), 再计算a+=a,即a=a+a。而此时等号后的a的值已改变(because a-=a*a), 而若按 a=a+(a-(a*a)) 计算, a 的值均为初值。因此不等价。
此类问题关键在于这种表达式是边赋值边运算。
试想应用中是否会真正用到这种有点复杂而又好像很无聊的表示方法呢?
学习一下知识罢了……
【评论】 【打印】 【字体:大 中 小】 本文链接:http://blog.pfan.cn/wentao/10140.html
a+=a-=a*a 不等价于 a=a+(a-(a*a))
原因: 原式运行过程为先计算a-=a*a, 即a=a-(a*a), 再计算a+=a,即a=a+a。而此时等号后的a的值已改变(because a-=a*a), 而若按 a=a+(a-(a*a)) 计算, a 的值均为初值。因此不等价。
此类问题关键在于这种表达式是边赋值边运算。
试想应用中是否会真正用到这种有点复杂而又好像很无聊的表示方法呢?
学习一下知识罢了……
阅读(4761) | 评论(5)
版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!
评论