“&安培;”变量类型后的含义

时间:2012-07-22 21:41:54

标签: c++

  

可能重复:
  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的地址。但这个样本意味着什么?

2 个答案:

答案 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;
}