精華區beta NTUE-CS101 關於我們 聯絡資訊
: Q: 請寫出下面程式碼顯示在螢幕上的結果 : int i=10,j=5; : cout<<i*j-++i; : cout<<i; : 答案是 3911 喔 ( 沒有 endl 所以不換行 ) : 程式碼由左往右讀 : i*j-++i; ( i=10,j=5 ) : 10*5-++i; ( i=10,j=5 ) : 50-++i; ( i=10,j=5 ) : 50-i; ( i=11, j=5 ) : 39; ( i=11, j=5 ) 囧 DEV C++ ( G++ ) 跑出來的結果是 3911 Visual C++ 跑出來的結果是 4411 Dev 的想法是我上面打的那個 Visual C++ 的想法是 cout<<i*j-++i; 先做++i i*j-i ( i=11, j=5 ) 11x5-11 = 44 嗯 .. 這題算爭議題 ... 王老大考出來的話我會叫他兩個都給對 ︿( ̄︶ ̄)︿ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.68.15.209
linjrming:++應該優先權在乘法前面 所以4411也許是較正確解 11/10 21:32
yantchen:其實這種語法 筆試才會考 一般寫程式會盡量避免吧 11/10 21:40
linjrming:這種題目說實在的也沒有什麼意義 11/10 21:46
linjrming:不同的編譯器有不同的規則 11/10 21:46
yantchen:謝謝毛妹提醒 課本p4-9的那個程式也是dev/vc會跑不同結果 11/10 23:36
feather427:今晚再一次謝謝學長!! :D 超好的哈哈哈哈哈哈 11/11 00:46
rockmyangel:謝謝學長 我考得不錯喔 11/18 15:58