Способи передачі параметрів функцій - студопедія

Механізм параметрів є основним способом обміну інформацією між спричиненої і викликає функціями. В операторі виклику функції записують аргументи функції, а в заголовку опису функції перераховують параметри.

В С ++ передача параметрів здійснюється трьома способами:

· По копії (або за значенням);

Розглянемо всі три способи передачі на прикладі функції обміну 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 може передаватися константа.

Параметри, що передаються в функцію, можуть бути будь-якого типу (наприклад, речового, структурою, перерахуванням, об'єднанням, покажчиком), крім масиву або функції, які передаються за допомогою покажчиків.

Схожі статті