[问题] 递增运算 & 比较运算 运行结果不同于书??

楼主: laiDark (煎饺加赖)   2014-08-26 10:49:21
开发平台(Platform): code block
小弟是初学者 自己买书自修学C++
首先是比较运算子
书上的范例是http://codepad.org/o5Rr7KKL
我自己打把后面的cout省去 http://codepad.org/5m5t4ALy
网页上不能运行 不过我在code block上面的结果是http://ppt.cc/KlAA
为什么??? 只是省略后面的cout 结果就不一样?
然后是递增运算子的问题
我自己的是这样 http://codepad.org/OP5CrvjO
网页好像也无法 可是code block 跑出来是这样http://ppt.cc/NWX6
可是书上 最后一个 j=24 我的是26...?
书上的http://codepad.org/Qh9ZNeDq
这是为什么???
跟我的就差在把using namespace std;舍去 后面程式std :: 这样
而且用书上的连code block都无法运行 是哪里出错了?
作者: LPH66 (-6.2598534e+18f)   2014-08-26 11:07:00
你合成一个叙述之后违反了置底十三诫之八codepad 也告诉你了这个状况 i 可能未定义如果书上真的写 (i++)+i+(i++) 这样的话把那本书扔了吧
作者: kerwinhui (kezza)   2014-08-26 11:11:00
当同一个算式出现 i++ (或 i--) 和 i 的时候是 ill-defined 的因为可能会被 compiler optimize 成其他的样子
作者: NonInvertAmp (LastK)   2014-08-26 11:19:00
书扔了+1
作者: iloveyouever (佚名)   2014-08-26 11:23:00
感觉考这没啥意思@@"24要兜出来的话 (--i) 先做 得出 j=8+8+826要兜出来的话就是 从左往右 26=9+9+8到底是哪种做法 不知道是不是取决于COMPILER怎么做?
作者: LPH66 (-6.2598534e+18f)   2014-08-26 11:29:00
确实取决于 compiler 的决定, 所以没有一定
作者: azureblaze (AzureBlaze)   2014-08-26 11:32:00
如果你的书没告诉你答案不固定 把他扔了
作者: Killercat (杀人猫™)   2014-08-26 11:35:00
会给这种范例的书...建议你换一本比较好
作者: keeper7478 (the Servant of Cthulhu)   2014-08-26 12:45:00
挺好奇是哪本书的
楼主: laiDark (煎饺加赖)   2014-08-26 14:03:00
已解决 感谢前辈们的说明 不过书上是真的写(i++)+i+(i++)书挺旧了 好像06年出版的 递增那边有说取决于compiler不过我不小心忽略了@@

Links booklink

Contact Us: admin [ a t ] ucptt.com