声明引用并传递它与仅通过引用传递相同吗?

Fil*_*ups 3 c++ reference c++11

假设你有一个这样的函数:

void func(int & arg) {
    std::cout << arg << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

正在做类似的事情:

int x = 10;
int & y = x;

func(y);
Run Code Online (Sandbox Code Playgroud)

等同于:

int x = 10;

func(x)
Run Code Online (Sandbox Code Playgroud)

是否arg成为int && arg或是否留int & arg,当你像第一种情况下预先声明引用传递?

son*_*yao 5

是的,他们是一样的。作为参考

将命名变量声明为引用,即已存在对象或函数的别名。

您可以将y视为 的别名x,传递y给函数funcx直接传递具有相同的效果。