1. 程式人生 > >20180514 ++i和i++

20180514 ++i和i++

pre 報錯 bsp std cin key padding char 定義

函數func的定義如下:
1 2 3 4 5 void func(const int& v1, cont int& v2) { std::cout << v1 << ‘ ‘; std::cout << v2 << ‘ ‘; }
以下代碼輸出結果為____。
1 2 3 4 5 6 int main (int argc, char* argv[]) { int i=0; func(++i,i++); return 0; }

0 1
1 2
2 1
2 0
程序強制終止並報錯
結果與編譯器有關

答案:結果與編譯器有關  錯選:2 0

C語言函數參數入棧順序為由右向左,func(++i, i++)可以分解為 參數 i 先入棧 輸出0 然後執行i++ 此時i為1 接著參數 i 先執行++i i 此時為2 後入棧進行輸出 2

20180514 ++i和i++