Многие языки программирования используют функции. Функция - это набор операторов для выполнения конкретной задачи. Основной код можно разделить на несколько функций и вызывать их. Есть два способа вызова функции, такие как вызов по значению и вызов по ссылке. В методе вызова по значению копии переменных передаются в функцию. Если значение функции изменяется, оно не меняет первоначальное значение. При вызове по ссылке изменения переменной внутри функции отражают исходное значение. ключевое отличие между вызовом по значению и вызовом по ссылке является то, что, при вызове по значению копия переменных передается в функцию, а при вызове по ссылке адреса переменных передаются в функцию. В этой статье обсуждается разница между вызовом по значению и вызовом по ссылке.
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 версию этой статьи и использовать ее в автономном режиме, как указано в примечании. Пожалуйста, загрузите PDF версию здесь. Разница между звонком по стоимости и звонком по ссылке
1. Джайсваль, Хареш. «11 Звонок по значению против звонка по ссылке». YouTube, YouTube, 24 декабря 2015 г. Доступно здесь