Разлика између позива према вредности и позива према референци

Кључна разлика - позив према вредности у односу на позив референцом
 

Многи програмски језици користе функције. Функција је скуп изјава за извођење одређеног задатка. Главни код се може поделити на неколико функција и позвати их. Постоје два начина позивања функције као што су позив по вредности и позив референцом. Код позива методом вредности, копије променљивих се преносе у функцију. Ако дође до промене вредности функције, она не мења оригиналну вредност. У позиву по референци, промене променљиве унутар функције одражавају оригиналну вредност. Тхе кључна разлика између позива према вредности и позива по референци је то, у позиву по вредности, копија променљивих се преноси у функцију, а у позиву на референцу, адресе променљивих се преносе у функцију.  Овај чланак говори о разлици између вредности позива и позива према референци.

САДРЖАЈ

1. Преглед и кључне разлике
2. Шта је позив по вредности
3. Шта је позив по референци
4. Сличности између позива према вредности и позива по референци
5. Упоредни поредак - Позив према вредности у односу на позив према референци у табеларном облику
6. Резиме

Шта је позив по вредности?

Код вредности по вредности, копије променљивих се преносе у функцију. Функција може променити копирану вредност, али не и оригиналну вредност. Овај концепт се лако може разумети заменом програма са два броја. Погледајте ниже Ц програм написан у окружењу Цоде Блоцкс.

Слика 01: Програм за замјену два броја

Према програму датом у наставку, променљива 'а' има вредност 20, а променљива 'б' вредност 30. Када зовете свап (а, б) функцију, ове две вредности преносе се у функцију свап. У функцији свап, 'а' се копира у 'к', а 'б' се копира у 'и'. Сада 'к' има вредност 20, а 'и' вредност 30. Користећи променљиву темп две вредности се мењају. Када штампамо вредности „к“ и „и“ унутар те функције „свап“, излаз ће дати 30 за „к“ и 20 за „и“. Када је извршавање функције свап завршено, контрола се враћа назад у главну функцију. Када се штампају вредности 'а' и 'б', у главној функцији, резултати ће бити оригиналне вредности. Они су 20 за 'а' и 30 за 'б'. Промјене извршене помоћу свап функције не одражавају се у главном програму.

Слика 02: Резултати програма замене

'к' и 'и' у функцији свап имају замијењене вриједности које су 30 и 20, али те вриједности се не могу користити у главном програму. Иако су „к“ и „и“ измењене вредности, оне су локалне променљиве за функцију „свап“ и не може им се приступити главна функција. Да би се избегао овај проблем, може се користити позив по референци.

Шта је позив према референци?

У овом методу адресе променљивих се шаљу функцији. Погледајте ниже Ц програм написан у окружењу Цоде Блоцкс.

Слика 03: Замјена два броја помоћу показивача

Према датом доњем примеру, вредност „а“ је 20, а вредност „б“ је 30. Уместо да предаје копије „а“ и „б“, програмер може послати адресе „а“ и „б“ 'користећи функцију, свап (& а, & б).

Слика 04: Резултати програма измјене помоћу показивача

У свап функцији треба користити показиваче јер се адресе просљеђују и те адресе требају држати показивачи. Унутар функције се адреса 'а' копира на 'к', а адреса 'б' копира на 'и'. Коришћењем променљиве темп, вредности 'к' и 'и' се мењају. У овом позиву референтном методом, промене унутар функције свап одражавају се у главном програму. Штампање вредности 'а' и 'б' у главном даће измењене вредности. Сада је излаз 'а' 30, а 'б' 20. Док функција преузима адресу променљивих, промене унете у функцију утичу на изворне вредности.

Која је сличност између позива према вредности и позива према референци?

  • Ове две методе се користе за позивање функција / метода.

Која је разлика између позива по вредности и позива према референци?

Цалл Би Валуе вс Цалл Би Референце

Код позива по вредности, копије променљивих се преносе у функцију, тако да промене извршене унутар функције неће променити оригиналну вредност. У позиву по позиву, адреса променљивих се прослеђује функцији, тако да ће промене које се извршавају за променљиве унутар функције модификовати оригиналну вредност.
 Измене вредности
Код позива по вредности, оригинална вредност се не мења. У позиву по референци, оригиналне вредности се мењају.

Резиме - Цалл би Валуе вс Цалл би Референце

Позиви по вредности и позиви референцом су начини позивања функције. Разлика између позива према вредности и позива према референци је у томе што се у позиву по вредности копије променљивих преносе у функцију, а у позиву по референци, адресе променљивих се преносе у функцију. Употреба позива по вредности или позивања по референци зависи од задатка који треба обавити.

Преузмите ПДФ верзију позива према вредности у односу на позив према референци

Можете преузети ПДФ верзију овог чланка и користити је за оффлине употребу према напомени. Молимо преузмите ПДФ верзију овде. Разлика између позива према вредности и позива по референци

Референце:

1.Јаисвал, Харесх. „11 позив по вредности у односу на референтни позив.“ ЈуТјуб, ИоуТубе, 24. децембар 2015. Доступно овде