-2
#include <iostream>
int a=5;
using namespace std;
int fun()
{
a=17;
return 3;
}
int main()
{
a=a+fun();
cout<<a;
return 0;
}
実行開始時の流れは? コード実行がmainで始まると読んでいます。このような場合は実行前に、コンパイラはa
値をフェッチするか選択することも表現a + fun()
を解釈しながら答えは8なるが、C++コンパイラの回答で、このコードの実行に20C++コードの実行の流れは?
式の部分式の評価の順序は不明です。特に、 'a + fun()'では、 'a'の値が' fun() 'の前か後に取られるかは不明です(' fun() 'の呼び出しは' a'の値を変更します)これはグローバル変数です)。あなたのコンパイラは 'fun()'を最初に呼び出すことを選択します。 –
詳細については、https://stackoverflow.com/questions/9818099/order-of-function-callingを参照してください。 –