40

可能重复:
C++ 中的指针变量和引用变量有什么区别?
应用于变量名时 * 和 & 的含义是什么?

&在这种情况下试图理解“”的含义

void af(int& g)
{
    g++;
    cout<<g;
}

如果您调用此函数并传递变量名称 - 它的行为将与正常相同void(int g)。我知道,当你写&g这意味着你正在传递变量的地址g。但是在这个示例中它意味着什么?

4

2 回答 2

37

这意味着您通过引用传递变量。

实际上,在类型的声明中,它意味着引用,就像:

int x = 42;
int& y = x;

声明对 的引用x,称为y

于 2012-07-22T21:43:36.713 回答
22

&意味着函数接受变量的地址(或引用),而不是变量的

例如,请注意这之间的区别:

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;
}
于 2012-07-22T21:47:20.350 回答