Подтвердить что ты не робот

"&" означает значение переменной типа

Возможный дубликат:
Каковы различия между переменной указателя и ссылочной переменной в С++?
В чем смысл * и при применении к именам переменных?

Попытка понять смысл "&" в этой ситуации

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

Если вы вызываете эту функцию и передаете имя переменной - она ​​будет действовать так же, как и обычный void(int g). Я знаю, когда вы пишете &g, это означает, что вы передаете адрес переменной g. Но что это значит в этом примере?

4b9b3361

Ответ 1

Это означает, что вы передаете переменную по ссылке.

Фактически, в объявлении типа это означает ссылку, как:

int x = 42;
int& y = x;

объявляет ссылку на x, называемую y.

Ответ 2

& означает, что функция принимает адрес (или ссылку) на переменную вместо значения переменной.

Например, обратите внимание на разницу между этим:

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