关于C++:&在变量类型后的意义


“&” meaning after variable type

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
What are the differences between pointer variable and reference variable in C++?
What's the meaning of * and & when applied to variable names?

试图理解这种情况下"EDOCX1"〔0〕的含义

1
2
3
4
5
void af(int& g)
{
    g++;
    cout<<g;
}

如果调用此函数并传递变量名,它的作用将与正常的void(int g)相同。我知道,当你写&g时,这意味着你正在传递变量g的地址。但这在这个样本中意味着什么呢?


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

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

1
2
int x = 42;
int& y = x;

声明对x的引用,称为y


&表示函数接受变量的地址(或引用),而不是变量的值。

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
void af(int& g)
{
    g++;
    cout<<g;
}

int main()
{
    int g = 123;
    cout << g;
    af(g);
    cout << g;
    return 0;
}

而这个(没有&):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
void af(int g)
{
    g++;
    cout<<g;
}

int main()
{
    int g = 123;
    cout << g;
    af(g);
    cout << g;
    return 0;
}