作者:
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++) 這樣的話把那本書扔了吧
當同一個算式出現 i++ (或 i--) 和 i 的時候是 ill-defined 的因為可能會被 compiler optimize 成其他的樣子
作者: NonInvertAmp (LastK) 2014-08-26 11:19:00
書扔了+1
感覺考這沒啥意思@@"24要兜出來的話 (--i) 先做 得出 j=8+8+826要兜出來的話就是 從左往右 26=9+9+8到底是哪種做法 不知道是不是取決於COMPILER怎麼做?
作者:
LPH66 (-6.2598534e+18f)
2014-08-26 11:29:00確實取決於 compiler 的決定, 所以沒有一定
作者: keeper7478 (the Servant of Cthulhu) 2014-08-26 12:45:00
挺好奇是哪本書的
作者:
laiDark (煎餃加賴)
2014-08-26 14:03:00已解決 感謝前輩們的說明 不過書上是真的寫(i++)+i+(i++)書挺舊了 好像06年出版的 遞增那邊有說取決於compiler不過我不小心忽略了@@