C ++代码的执行流程是什么?

时间:2017-11-10 03:48:09

标签: c++

#include <iostream>
int a=5; 
using namespace std;
int fun()
{
    a=17;
    return 3;
}
int main()
{
    a=a+fun();
    cout<<a;
    return 0;
}

执行开始时会有什么流程? 我已经读过代码执行从main开始。如果是这种情况,答案必须是8.但是在c ++编译器中执行此代码的答案是20.

1 个答案:

答案 0 :(得分:1)

在解释表达式a + fun()时,编译器可以选择在执行a调用之前获取fun(),或者在获取 >它。因此,从a获取的值可以是在5内分配的13fun()的初始值,因此您可以获得5+3或{{ 1}}。每个都是允许的。