作为引用的返回类型不会更改作为参数传递的值

时间:2017-07-31 19:27:51

标签: c++ reference

根据我的理解,函数 fun 的调用与 i 的参数同义,所以为什么 i 反映了该值在有趣中分配给它?

    int &  fun(int &i)
    {
            i=999;
            return i;
    }

    int main()
    {
            int i=90;
            cout<<fun(i)<<endl<<i<<endl;
            return 0;
    }

输出是:

  

999

     

90

1 个答案:

答案 0 :(得分:-1)

嗯,根据this,它是未定义的行为。 “如果相对于使用相同标量对象的值的值计算,标量对象的副作用未被排序,则行为未定义。”我认为i=999在这种情况下是“副作用”的含义。