可能重复:
What are the differences between pointer variable and reference variable in C++?
What's the meaning of * and & when applied to variable names?
在这种情况下试图理解“&
”的含义
void af(int& g)
{
g++;
cout<<g;
}
如果您调用此函数并传递变量名称 - 它将像普通void(int g)
一样运行。我知道,当你写&g
时,这意味着你要传递变量g
的地址。但这个样本意味着什么?
答案 0 :(得分:30)
这意味着您通过引用传递变量。
事实上,在一个类型的声明中,它意味着引用,就像:
int x = 42;
int& y = x;
声明对x
的引用,称为y
。
答案 1 :(得分:17)
&
表示函数接受变量的地址(或引用),而不是变量的值。
例如,请注意这一点之间的区别:
void af(int& g)
{
g++;
cout<<g;
}
int main()
{
int g = 123;
cout << g;
af(g);
cout << g;
return 0;
}
这个(没有&
):
void af(int g)
{
g++;
cout<<g;
}
int main()
{
int g = 123;
cout << g;
af(g);
cout << g;
return 0;
}