分页: 1 / 1
[问题]关于运算符优先级
发表于 : 2007-05-26 20:09
由 neomi
为什么
与
的结果不同?
第一个比较好懂,其实就是 y = y - (x - x)
可第二个值怎么变了?
发表于 : 2007-05-26 20:13
由 BigSnake.NET
x -= x - x--
-- 与 -= 顺序不确定,不要使用这种不确定的语句
发表于 : 2007-05-26 20:35
由 neomi
为什么会不确定?
只是想知道原因,这是网上看到的代码
发表于 : 2007-05-26 20:39
由 BigSnake.NET
neomi 写了:为什么会不确定?
只是想知道原因,这是网上看到的代码
标准没规定
发表于 : 2007-05-26 20:54
由 neomi
您的意思是
y -= x - x--
确定而
x -= x - x--
不确定?
发表于 : 2007-05-26 20:56
由 BigSnake.NET
neomi 写了:您的意思是
y -= x - x--
确定而
x -= x - x--
不确定?
都是不确定..只不过在第一种情况中 -= 没有修改x ,所以这种不确定实际上是得到同一个结果的
发表于 : 2007-05-26 21:21
由 efan
不定吗?应该是定的
x -= x - x--
x-x--的值为0
这时候x已经变为x-1了(执行完x--的结果)
所以x -= 0,仍然是x,也就是x-1
所以
x -= x - x--
x的值并不是因为赋值号-=而改变的,而是因为x--。
发表于 : 2007-05-26 21:31
由 efan
BigSnake.NET 写了:x -= x - x--
-- 与 -= 顺序不确定,不要使用这种不确定的语句
赋值操作符的优先级是小于--的
发表于 : 2007-05-26 21:32
由 dogal
复杂
发表于 : 2007-05-26 23:32
由 jaywee
我是这样想的:x-=x-x--中,
按照运算符的优先级,先运算x=x-(x-x),然后x自减1,所以返回的值应该是X自减1的值,
发表于 : 2007-05-27 11:22
由 neomi
多谢大家,尤其是 efan,你的解释比较好懂