Некоторые преимущества передачи параметров по ссылке вместо передачи по значению:
- Эффективность при передаче больших объектов. 3 При передаче по ссылке не происходит копирования значений, а функция использует сам объект, а не его значение. 3 Это увеличивает производительность программы. 3
- Возможность возвратить из функции сразу несколько значений. 3 Передача по ссылке позволяет это, так как ссылка становится альтернативным именем аргумента, и любые действия, выполняемые со ссылкой в теле функции, мгновенно отражаются на состоянии аргумента. 2
- Исключение нежелательных преобразований типов. 3 При передаче параметров по ссылке неявные автоматические преобразования типов исключены. 3
- Передача модифицированных данных из функции в вызывающий код. 4 Это полезно, когда возврата отдельного значения с помощью return недостаточно. 4
Передача по значению, в свою очередь, больше подходит для передачи в функцию небольших объектов, значения которых копируются в определённые участки памяти. 3