Ответ 1
Это означает, что вы передаете переменную по ссылке.
Фактически, в объявлении типа это означает ссылку, как:
int x = 42;
int& y = x;
объявляет ссылку на x
, называемую y
.
Возможный дубликат:
Каковы различия между переменной указателя и ссылочной переменной в С++?
В чем смысл * и при применении к именам переменных?
Попытка понять смысл "&
" в этой ситуации
void af(int& g)
{
g++;
cout<<g;
}
Если вы вызываете эту функцию и передаете имя переменной - она будет действовать так же, как и обычный void(int g)
. Я знаю, когда вы пишете &g
, это означает, что вы передаете адрес переменной g
. Но что это значит в этом примере?
Это означает, что вы передаете переменную по ссылке.
Фактически, в объявлении типа это означает ссылку, как:
int x = 42;
int& y = x;
объявляет ссылку на x
, называемую y
.
&
означает, что функция принимает адрес (или ссылку) на переменную вместо значения переменной.
Например, обратите внимание на разницу между этим:
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;
}