Різниця між дзвінками за цінністю та викликом за довідкою

Ключова різниця - Дзвінок за значенням та виклик за посиланням
 

Багато мов програмування використовують функції. Функція - це набір операторів для виконання конкретного завдання. Основний код можна розділити на кілька функцій і викликати їх. Існує два способи виклику функції, такої як дзвінок за значенням та виклик за посиланням. При виклику методом значення копії змінних передаються у функцію. Якщо відбувається зміна значення функції, воно не змінює вихідне значення. У виклику за посиланням зміни змінної всередині функції відображають вихідне значення. The ключова різниця між дзвінками за значенням і викликом за посиланням - це те, у виклику за значенням копія змінних передається функції, а при виклику за посиланням, адреси змінних передаються функції.  У цій статті йдеться про різницю між значеннями дзвінка та викликом за посиланням.

ЗМІСТ

1. Огляд та ключові відмінності
2. Що таке дзвінок за значенням
3. Що таке виклик за посиланням
4. Подібність між дзвінками за значенням та викликом за посиланням
5. Порівняльне порівняння - дзвінок за значенням та дзвінок за посиланням у таблиці
6. Підсумок

Що таке дзвінок за значенням?

При значенні виклику копії змінних передаються функції. Функція може змінити це скопійоване значення, але воно не змінить початкового значення. Цю концепцію можна легко зрозуміти, замінивши програмою два числа. Перегляньте нижче програму C, написану з використанням середовища Code Blocks.

Рисунок 01: Програма для заміни двох чисел

Відповідно до програми, наведеної нижче, змінна 'a' має значення 20, а змінна 'b' має значення 30. При виклику функції swap (a, b) ці два значення передаються функції swap. У функції swap "a" копіюється у "x", а "b" копіюється у "y". Тепер у "x" є значення 20, а "y" - значення 30. Використовуючи змінну temp, два значення замінюються. При друкуванні значень "x" і "y" всередині цієї функції заміни, вихід буде давати 30 для "x" і 20 для "y". Коли виконання функції заміни закінчиться, керування повертається до основної функції. При друкуванні значень 'a' і 'b' в головній функції результати будуть вихідними значеннями. Вони 20 для 'a' і 30 для 'b'. Зміни, здійснені за допомогою функції swap, не відображаються в основній програмі.

Малюнок 02: Вихід з програми обміну

'x' і 'y' у функції swap мають розміщені значення, що становлять 30 і 20, але ці значення не можна використовувати в основній програмі. Незважаючи на те, що "x" і "y" мають підмінені значення, вони є локальними змінними для функції заміни і не можуть отримати доступ до основної функції. Щоб уникнути цієї проблеми, можна використовувати дзвінок за посиланням.

Що таке дзвінок за посиланням?

У цьому методі адреси змінних надсилаються до функції. Перегляньте нижче програму C, написану з використанням середовища Code Blocks.

Малюнок 03: Заміна двох чисел за допомогою покажчиків

Відповідно до наведеного нижче прикладу, значення 'a' дорівнює 20, а значення 'b' дорівнює 30. Замість передачі копій 'a' і 'b' програміст може надсилати адреси 'a' і 'b 'за допомогою функції, swap (& a, & b).

Малюнок 04: Виведення програми обміну за допомогою покажчиків

У підкачці функція повинна використовувати вказівники, оскільки адреси передаються, а ці адреси повинні утримуватися покажчиками. Всередині функції адреса "a" копіюється у "x", а адреса "b" - "y". Використовуючи змінну temp, змінюються значення "x" та "y". У цьому виклику посилальним методом зміни всередині функції swap відображаються в основній програмі. Друк значень 'a' та 'b' в головному дасть значення, що змінюються. Тепер вихід "a" дорівнює 30, а "b" - 20. Оскільки функція приймає адресу змінних, зміни, внесені всередині функції, впливають на вихідні значення.

Яка схожість між дзвінками за цінністю та викликом за посиланням?

  • Ці два методи використовуються для виклику функцій / методів.

Яка різниця між дзвінками за вартістю та викликом за посиланням?

Дзвінок за значенням проти виклику за посиланням

При значенні виклику копії змінних передаються у функцію, так що зміни, внесені всередину функції, не змінять вихідне значення. У виклику за посиланням адреса змінних передається функції, тому зміни, внесені для змінних всередині функції, змінять вихідне значення.
 Модифікація значення
У значенні виклику вихідне значення не змінюється. У виклику за посиланням вихідні значення змінюються.

Підсумок - Дзвінок за цінністю проти виклику за посиланням

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

Завантажте PDF-версію виклику за вартістю проти виклику за посиланням

Ви можете завантажити PDF-версію цієї статті та використовувати її в офлайн-цілях відповідно до примітки. Завантажте версію PDF тут

Довідка:

1.Jaiswal, Haresh. "11 Дзвінок за цінністю проти виклику за довідкою". YouTube, YouTube, 24 грудня 2015. Доступний тут