看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) GCC 問題(Question): 請問程式碼背後是如何運作的,會導致這個結果? 預期的正確結果(Expected Output): 62 錯誤結果(Wrong Output): 61 程式碼(Code):(請善用置底文網頁, 記得排版) int test(int* x){ *x=2; return 3*(*x); } int main(){ int a=1; cout<<test(&a)<<a; system("pause"); } 補充說明(Supplement): 後來把cout<<test(&a)<<a; 改成 cout<<test(&a);cout<<a; 就可以了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.173.94.225
leiyan:<<好像在同一行是平行執行 08/08 21:40
tjjh89017:剛剛看好像VC跟gcc編出來的不太一樣@.@ 08/08 21:43
frankhsu421:所以是編譯器的問題? 08/08 21:56
Dannvix:calling convention 08/08 22:03
purpose:; 是順序點,保證 cout << a 執行時,test(&a) 已處理 08/08 22:10
purpose:然後 << 不是順序點,所以沒有這種保證 08/08 22:10
singlovesong:我也覺得是樓上講的 所以不同的編譯器結果才會不一樣 08/08 22:20
diabloevagto:這跟第八戒有關系嗎? 08/08 22:50
bibo9901:是 08/08 23:13
frankhsu421:了解了 謝謝各位 08/08 23:40