Существует три основных способа передачи параметров в функции на C/C++:
Передача по значению (Pass by Value)
c
Передача по ссылке (Pass by Reference)
const &) для предотвращения изменений.c
Передача по указателю (Pass by Pointer)
*) влияют на исходный аргумент.nullptr.nullptr), указывая на отсутствие объекта.c
| Способ | Что передается | Изменение оригинала | Эффективность (для больших объектов) | Безопасность (изменения) | Возможность "нулевого" значения | Синтаксис вызова |
|---|---|---|---|---|---|---|
| По значению | Копия значения | Нет | Низкая | Высокая | Нет | функция(переменная) |
| По ссылке | Псевдоним переменной | Да | Высокая | Низкая (если не const) | Нет | функция(переменная) |
| По указателю | Адрес переменной | Да (через *) | Высокая | Средняя (нужна проверка) | Да (nullptr) | функция(&переменная) |