Разница между звонком по значению и звонком по ссылке

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

Многие языки программирования используют функции. Функция - это набор операторов для выполнения конкретной задачи. Основной код можно разделить на несколько функций и вызывать их. Есть два способа вызова функции, такие как вызов по значению и вызов по ссылке. В методе вызова по значению копии переменных передаются в функцию. Если значение функции изменяется, оно не меняет первоначальное значение. При вызове по ссылке изменения переменной внутри функции отражают исходное значение. ключевое отличие между вызовом по значению и вызовом по ссылке является то, что, при вызове по значению копия переменных передается в функцию, а при вызове по ссылке адреса переменных передаются в функцию.  В этой статье обсуждается разница между вызовом по значению и вызовом по ссылке.

СОДЕРЖАНИЕ

1. Обзор и основные отличия
2. Что такое колл по значению
3. Что такое звонок по ссылке
4. Сходства между звонком по значению и звонком по ссылке
5. Сравнение по соседству - вызов по значению против вызова по ссылке в табличной форме
6. Резюме

Что такое колл по значению?

При вызове по значению копии переменных передаются в функцию. Функция может изменить это скопированное значение, но оно не изменит исходного значения. Эту концепцию легко понять, если поменять местами две программы. См. Нижеприведенную программу на C, написанную с использованием среды Code Blocks..

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

В соответствии с программой, приведенной ниже, переменная 'a' имеет значение 20, а переменная 'b' имеет значение 30. При вызове функции swap (a, b) эти два значения передаются в функцию swap. В функции подкачки «a» копируется в «x», а «b» копируется в «y». Теперь «x» имеет значение 20, а «y» имеет значение 30. Используя переменную temp, два значения меняются местами. При печати значений «x» и «y» внутри этой функции подкачки, вывод будет давать 30 для «x» и 20 для «y». Когда выполнение функции подкачки закончено, элемент управления возвращается к основной функции. При печати значений «a» и «b», в основной функции, результаты будут исходными значениями. Они 20 для «а» и 30 для «б». Изменения, сделанные с помощью функции подкачки, не отражаются в основной программе.

Рисунок 02: Вывод программы обмена

«x» и «y» внутри функции подкачки имеют поменяемые значения, которые равны 30 и 20, но эти значения нельзя использовать в основной программе. Даже если «x» и «y» имеют переставляемые значения, они являются локальными переменными для функции подкачки и недоступны для основной функции. Чтобы избежать этой проблемы, можно использовать звонок по ссылке.

Что такое звонок по ссылке?

В этом методе адреса переменных отправляются в функцию. См. Приведенную ниже программу на C, написанную с использованием среды Code Blocks..

Рисунок 03: Обмен двух чисел с помощью указателей

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

Рисунок 04: Вывод программы подкачки с использованием указателей

При обмене функция должна использовать указатели, поскольку адреса передаются, и эти адреса должны храниться указателями. Внутри функции адрес «a» копируется в «x», а адрес «b» копируется в «y». Используя переменную temp, значения 'x' и 'y' меняются местами. В этом вызове эталонным методом изменения внутри функции подкачки отражаются в основной программе. Печать значений «a» и «b» в основном даст замененные значения. Теперь вывод «a» равен 30, а «b» равен 20. Поскольку функция принимает адрес переменных, изменения, сделанные внутри функции, влияют на исходные значения..

В чем сходство между звонком по значению и звонком по ссылке?

  • Эти два метода используются для вызова функций / методов.

В чем разница между звонком по значению и звонком по ссылке?

Вызов по значению против вызова по ссылке

При вызове по значению копии переменных передаются в функцию, поэтому изменения, внесенные в функцию, не изменят первоначальное значение. При вызове по ссылке адрес переменных передается функции, поэтому изменения, внесенные для переменных внутри функции, изменят исходное значение..
 Значение модификации
При вызове по значению исходное значение не меняется. При вызове по ссылке исходные значения меняются.

Резюме - Звонок по значению против звонка по ссылке

Вызов по значению и вызов по ссылке - это методы вызова функции. Разница между вызовом по значению и вызовом по ссылке заключается в том, что при вызове по значению копии переменных передаются в функцию, а при вызове по ссылке адреса переменных передаются в функцию. Использование вызова по значению или вызова по ссылке зависит от выполняемой задачи.

Скачать PDF-версию Call по значению против Call by Reference

Вы можете скачать PDF версию этой статьи и использовать ее в автономном режиме, как указано в примечании. Пожалуйста, загрузите PDF версию здесь. Разница между звонком по стоимости и звонком по ссылке

Ссылка:

1. Джайсваль, Хареш. «11 Звонок по значению против звонка по ссылке». YouTube, YouTube, 24 декабря 2015 г. Доступно здесь