作者frankhsu421 (問號)
看板C_and_CPP
標題[問題] 關於cout
時間Wed Aug 8 21:28:37 2012
開發平台(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