"&"表示变量类型之后

vic*_*ico 34 c++

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

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

void af(int& g)
{
    g++;
    cout<<g;
}
Run Code Online (Sandbox Code Playgroud)

如果你调用这个函数并传递变量名 - 它将像普通一样运行void(int g).我知道,当你写&g这意味着你正在传递变量的地址g.但这个样本意味着什么?

Luc*_*ore 31

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

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

int x = 42;
int& y = x;
Run Code Online (Sandbox Code Playgroud)

声明引用x,调用y.


ceg*_*ult 17

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

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

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

int main()
{
    int g = 123;
    cout << g;
    af(g);
    cout << g;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这个(没有&):

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

int main()
{
    int g = 123;
    cout << g;
    af(g);
    cout << g;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

  • "&表示该功能接受地址"......嗯......不... (8认同)
  • 所以你说你可以把这个函数称为`af(&g)`,对吧?因为`&g`是`g`的地址,**你说**'af`接受变量的地址? (2认同)