С ++ амперсанд в функции - PullRequest
       14

С ++ амперсанд в функции

0 голосов
/ 06 ноября 2018

Я хочу знать, что эти определения функций равны, т.е. нет никакой разницы?

void fun1(int **X){....}
void fun2(int **&X){....}

int main(){
.....
fun1(Array);
fun2(Array);
.....
}

Или это что-то изменить?

1 Ответ

0 голосов
/ 06 ноября 2018

Определение очевидно другое, и разница в функциональности будет сильно зависеть от того, как реализованы функции. Передача параметра в fun2 и последующая запись в параметр внутри тела функции приведет к записи в указанную ячейку памяти, при передаче этого же параметра в fun1 и запись в него внутри тела функции оставит исходный параметр не поврежден, поскольку переданный параметр будет просто копией в другом месте памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...