[問題] ++i + ++i + ++i

看板C_and_CPP (C/C++)作者 (Anson)時間14年前 (2011/11/13 18:38), 編輯推噓16(16049)
留言65則, 18人參與, 最新討論串1/4 (看更多)
#include<iostream> using namespace std; int main(){ int x=5,y; y= ++x * ++x * ++x; cout<<x<<" "<<y; return 0; } y的結果是392 是7*7*8嗎? 為什麼? -- ※ 發信站: 批踢踢實業坊(ptt.cc)

11/13 18:39, , 1F
置底文
11/13 18:39, 1F

11/13 18:41, , 2F
新手第八誡
11/13 18:41, 2F

11/13 18:42, , 3F
不要把生命花在這沒營養的程式碼
11/13 18:42, 3F

11/13 18:46, , 4F
你喜歡文言文嗎?
11/13 18:46, 4F

11/13 18:48, , 5F
不好意思,因為考試有相關的題目,想把它弄懂...
11/13 18:48, 5F

11/13 18:49, , 6F
你有看過置底文了嗎?
11/13 18:49, 6F

11/13 18:51, , 7F
我知道這是第八誡,平常寫程式也不會這樣寫...
11/13 18:51, 7F

11/13 18:53, , 8F
可是老師講義上有寫這個,單純想要了解..
11/13 18:53, 8F

11/13 18:54, , 9F
慘@@" 你遇到爛老師了......
11/13 18:54, 9F

11/13 18:55, , 10F
@@ 標準寫這是未定義行為, 也就是不同編譯器會有不同結果
11/13 18:55, 10F
※ 編輯: s9863 來自: 115.82.254.226 (11/13 18:58)

11/13 18:59, , 11F
第十四誡:考試題目有時候是亂出的,老師有時候沒比較懂
11/13 18:59, 11F

11/13 19:01, , 12F
照bibo9901那樣寫吧 老師教的不一定都是對的
11/13 19:01, 12F

11/13 19:03, , 13F
如果老師有給答案就硬背吧,去問問他版本的答案是什麼
11/13 19:03, 13F

11/13 19:03, , 14F
不要跟分數過不去,說不定他不知道未定義行為是什麼
11/13 19:03, 14F

11/13 19:04, , 15F
to james732: 這種未定義行為背下來,對日後是有負面影響
11/13 19:04, 15F

11/13 19:04, , 16F
原po推文說他知道不會這麼寫,有這種認知其實就夠了
11/13 19:04, 16F

11/13 19:05, , 17F
打分數的人才是老大,考完試再把這個東西忘掉就好
11/13 19:05, 17F

11/13 19:06, , 18F
在大學, 就要有爭論、辯論、思考的空間.
11/13 19:06, 18F

11/13 19:07, , 19F
在理想的大學是這樣,但已經出現在講義上,我不會想多言
11/13 19:07, 19F

11/13 19:07, , 20F
世界上很多都是沒有標準答案的, 一直依賴標準答案, 要到
11/13 19:07, 20F

11/13 19:07, , 21F
何時.
11/13 19:07, 21F

11/13 19:10, , 22F
辯論要看對象,或許原po可以考慮跟老師討論這個
11/13 19:10, 22F

11/13 19:10, , 23F
不過有些教授應該會不喜歡被質疑...XD
11/13 19:10, 23F

11/13 19:11, , 24F
也有可能講義根本就是助教亂寫的,教授很久沒寫程式了
11/13 19:11, 24F

11/13 19:13, , 25F
其實我同意ericinttu的說法,但還是要看情況去做XD
11/13 19:13, 25F

11/13 19:22, , 26F
我寧願退掉去修別的老師的課
11/13 19:22, 26F

11/13 19:23, , 27F
有些學校規模小的,每個科目只有一個老師開,沒得選 :(
11/13 19:23, 27F

11/13 19:23, , 28F
雖然我不知道原po的狀況,但我會現實的覺得學分第一...XD
11/13 19:23, 28F

11/13 19:24, , 29F
更何況期中考週都快過了,要退掉改選應該也很難
11/13 19:24, 29F

11/13 19:44, , 30F
真的是爛老師一個, 何必折磨自已
11/13 19:44, 30F

11/13 19:46, , 31F
單純認為這題是拿 dev-cpp 跑出來結果當答案。
11/13 19:46, 31F

11/13 19:47, , 32F
原因正如原 po 所寫 7*8*8 , only for dev-cpp.
11/13 19:47, 32F

11/13 20:45, , 33F
我是認為可以拿兩種不同的編譯器的結果去跟老師吵
11/13 20:45, 33F

11/13 20:45, , 34F
不需要提什麼未定義行為 只要說在這兩種編譯器上結果不同
11/13 20:45, 34F

11/13 20:45, , 35F
++x^3是512吧
11/13 20:45, 35F

11/13 20:46, , 36F
之前學弟拿中區資訊競賽筆試類似的的題目問我,我說就直接
11/13 20:46, 36F

11/13 20:46, , 37F
像我剛剛實際測了一下 gcc 4.1.0 和 VC 2005 的答案就不同了
11/13 20:46, 37F

11/13 20:46, , 38F
寫 未定義行為吧 XD
11/13 20:46, 38F

11/13 20:47, , 39F
然後我會說「這兩種都是知名度比較高的總不會是他們有問題
11/13 20:47, 39F

11/13 20:47, , 40F
所以就是這支程式有問題」
11/13 20:47, 40F

11/13 20:48, , 41F
這樣還不知道要改的老師...就只好照james說的做了 (攤手)
11/13 20:48, 41F

11/13 20:49, , 42F
LPH66的建議很好,我的建議是最懶惰的做法...XDDD
11/13 20:49, 42F

11/13 20:49, , 43F
xatier:我擔心會搞這種題目的人無法接受"未定義行為"
11/13 20:49, 43F

11/13 20:50, , 44F
他們大概會用某種編譯器結果加上自己的獨到見解....
11/13 20:50, 44F

11/13 20:50, , 45F
是啊 所以我的方法就是拿實際結果讓那些人閉嘴 XD
11/13 20:50, 45F

11/13 20:51, , 46F
@超哥: 這是最令人擔心的狀況阿...答案完全誤導學生 Orz
11/13 20:51, 46F

11/13 20:52, , 47F
真的要看老師的個性了,最糟糕就會說「一定是VC有問題」
11/13 20:52, 47F

11/13 20:58, , 48F
教材內容都有辦法這樣了, 怎麼吵?
11/13 20:58, 48F

11/13 21:02, , 49F
我倒覺得這情形裡 VC 和他的「答案」不一樣的情形比較有得吵
11/13 21:02, 49F

11/13 21:03, , 50F
我可以說「VC是拿來賣錢的不會在這種地方有錯的」
11/13 21:03, 50F

11/13 21:03, , 51F
(當然這句話並不中肯 不過的確可以拿來吵 XD)
11/13 21:03, 51F

11/13 21:13, , 52F
其實我覺得最大的問題是:教授尊嚴是否能禁得起學生質疑
11/13 21:13, 52F

11/13 21:13, , 53F
他真的能接受學生這樣當面說「你教的東西有問題」嗎 XD
11/13 21:13, 53F

11/13 21:15, , 54F
我相信三個傻瓜裡的教授是真的存在的
11/13 21:15, 54F

11/13 21:39, , 55F
我比較好奇..都當到教授了居然連這都不會
11/13 21:39, 55F

11/13 21:41, , 56F
很多教授只會理論不會實作
11/13 21:41, 56F

11/13 21:49, , 57F
@james:只有敢爭論的人,才有機會拿到教授手中那隻鋼筆.
11/13 21:49, 57F

11/13 21:52, , 58F
其實病毒最後交出鋼筆讓我很感動,因為一定有死不認錯的
11/13 21:52, 58F

11/13 21:55, , 59F
所以我有一直強調要看教授個性,說不定是我太悲觀 XD
11/13 21:55, 59F

11/13 22:01, , 60F
看個C版也踩到雷XD
11/13 22:01, 60F

11/13 22:01, , 61F
糟糕,是我爆雷了 XDDDD
11/13 22:01, 61F

11/13 22:02, , 62F
三個傻瓜超感動,我看了四遍,哭了四遍Q___Q
11/13 22:02, 62F

11/13 22:03, , 63F
真的,笑點超好笑,哭點也很直接
11/13 22:03, 63F

11/13 22:05, , 64F
三個傻瓜QQ
11/13 22:05, 64F

11/14 01:34, , 65F
dev c++ 的確是392
11/14 01:34, 65F
文章代碼(AID): #1ElvuE7I (C_and_CPP)
討論串 (同標題文章)
以下文章回應了本文
完整討論串 (本文為第 1 之 4 篇):
14
37
16
65
文章代碼(AID): #1ElvuE7I (C_and_CPP)