Sim*_*ity 0 c++ pass-by-reference
我正在使用这个简单的代码尝试C++ pass-by-reference:
#include <iostream>
int square(int &x)
{
return x*x;
}
int main()
{
std::cout<<"Square of 4 is: "<<square(4)<<std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试运行它时,我得到以下内容:

UPDATE
在根据@Pablo Santa Cruz的答案修改代码后,我得到以下错误(我只是屏幕捕获部分错误):

这是为什么?
谢谢.
peo*_*oro 10
您不能将临时值传递给非常量引用.
请square接受const int &:
int square(const int &x)
{
return x*x;
}
Run Code Online (Sandbox Code Playgroud)
4如果您期望引用,则无法传递常量().
你必须传递一个变量:
int n = 4;
square(n);
Run Code Online (Sandbox Code Playgroud)
话虽如此,你可能想要这样的东西:
void square(int &x)
{
x = x*x;
}
Run Code Online (Sandbox Code Playgroud)
不是返回int的函数.
| 归档时间: |
|
| 查看次数: |
1015 次 |
| 最近记录: |