通过引用传递变量

时间:2016-11-14 10:36:05

标签: c++ reference pass-by-reference

我有这个功能:

void fun(int x, int& sum)
{
sum = x * x;
}

出了什么问题:

fun(4, &y);
fun(4,5);

2 个答案:

答案 0 :(得分:0)

&y不是参考。它是变量y的指针。如果你想通过引用传递它,你就这样传递它:

fun(4, y);

答案 1 :(得分:0)

在此函数调用中

fun(4, &y);

参数y具有指针类型,而相应参数引用int

如果y定义为

int y;

然后有效的函数调用看起来像

fun(4, y);

此函数调用无效

fun(4,5);

因为第二个参数是一个不是lvalue的临时表达式。因此,它可能被约束为恒定参考。但是,相应的参数被声明为非常量引用,因为函数中的参数已更改。因此编译器将发出诊断消息。