通过引用传递变量

passing variable by reference

本文关键字:变量 引用      更新时间:2023-10-16

我有这个函数:

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

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

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

fun(4, y);

在这个函数调用中

fun(4, &y);

参数y是指针类型,而对应的形参是对int的引用。

如果y被定义为

int y;

,那么有效的函数调用将看起来像

fun(4, y);

此函数调用无效

fun(4,5);

,因为第二个参数是一个非lvalue的临时表达式。因此,它可以绑定到一个常量引用。然而,相应的形参被声明为非常量引用,因为形参在函数中被更改了。因此,编译器将发出一条诊断消息。