Передача параметров по значению и по ссылке в C++ отличается следующим образом:
- Передача по значению. metanit.com www.geeksforgeeks.org Функция получает копию значения переменных и констант. metanit.com Любые изменения значения параметра внутри функции не отражаются на значении переменной-аргумента, так как параметр является локальной переменной. intuit.ru
- Передача по ссылке. metanit.com www.geeksforgeeks.org Передаётся ссылка на объект, через которую можно манипулировать самим объектом, а не просто его значением. metanit.com Фактический и формальный параметры указывают на один и тот же адрес памяти. www.geeksforgeeks.org Любые изменения, внесённые в параметры внутри функции, напрямую отражаются в исходных значениях вне функции. www.geeksforgeeks.org
Передача по значению больше подходит для передачи в функцию небольших объектов, значения которых копируются в определённые участки памяти, которые потом использует функция. metanit.com Передача по ссылке больше подходит для передачи в функцию больших объектов, в этом случае не нужно копировать всё содержимое объекта в участок памяти, за счёт чего увеличивается производительность программы. metanit.com