Механізм параметрів є основним способом обміну інформацією між спричиненої і викликає функціями. В операторі виклику функції записують аргументи функції, а в заголовку опису функції перераховують параметри.
В С ++ передача параметрів здійснюється трьома способами:
· По копії (або за значенням);
Розглянемо всі три способи передачі на прикладі функції обміну Change (). Їй передаються два параметри, і вона повинна поміняти місцями їх значення.
1. Передача по копії (за значенням):
Опишемо роботу програми. В області видимості функції main () існують дві локальні змінні A і B, які проініціалізовані значеннями 10 і 20. У момент виклику функції Change () в стеку створюються параметри X і Y, які отримують копії значень аргументів A і B, а також змінна temp . Потім за допомогою цієї змінної відбувається перестановка значень параметрів X і Y (колишні значення виділені червоним кольором). Однак після закінчення роботи функції Change () змінні X, Y і temp знищуються, оскільки є локальними змінними. а значення аргументів A і B залишаються незмінними.
Таким чином, функція Change () не вирішує поставленого перед нею завдання. Проте, даний приклад ілюструє особливість використання параметрів-копій: ніякі зміни значення параметра всередині функції не відображаються на значенні змінної-аргументу, так як параметр є локальною змінною. Це спосіб передачі параметрів в C ++ використовується за умовчанням.
3. Передача за посиланням:
У момент виклику функції Change () у аргументів A і B з'являються другі імена X і Y. Тому функція Change фактично безпосередньо працює з вихідними змінними A і B і змінює їх.
1) не потрібно пам'яті для копіювання аргументів на локальні змінні;
2) не потрібно часу на їх створення і знищення.
Передача параметра за посиланням також використовується, якщо функція повинна повернути не один результат, а кілька.
РАДА Рекомендується вказувати const перед усіма параметрами, зміна яких у функції не передбачено. Це полегшує налагодження. Крім того, на місце параметра типу const може передаватися константа.
Параметри, що передаються в функцію, можуть бути будь-якого типу (наприклад, речового, структурою, перерахуванням, об'єднанням, покажчиком), крім масиву або функції, які передаються за допомогою покажчиків.