我想知道如何让一个函数改变两个变量(返回和另一个),我偶然发现在参数(我理解为参数的地址)之前使用“&”调用函数,然后在整个函数中,用“*”符号引用它(我猜这是“取消引用”,意味着它会改变地址处的对象)。
不管怎样,一切都很好,然后一个朋友说你可以直接用变量调用函数,在 header 中用 & 引用变量,并在整个函数中正常对待它。这似乎更容易,那么为什么网络上没有更多关于它的信息呢?一种风格比另一种更正确吗?
void foo(int &junk) //The way the friend said
{
junk++;
}
void oof(int *junk) //what I found, and what the internet seems full of
{
(*junk)++;
}
int main ()
{
int junk=1;
std::cout << junk << "\n";
foo(junk);
std::cout << junk << "\n";
oof(&junk);
std::cout << junk;
}
这输出:
1
2
3
所以一切正常,我想。