Różnica między wywołaniem według wartości a wywołaniem według odwołania

Kluczowa różnica - połączenie według wartości a połączenie według odwołania
 

Wiele języków programowania korzysta z funkcji. Funkcja to zestaw instrukcji do wykonania określonego zadania. Główny kod można podzielić na kilka funkcji i wywołać je. Istnieją dwa sposoby wywoływania funkcji, takie jak wywołanie według wartości i wywołanie przez odniesienie. W metodzie call by value kopie zmiennych są przekazywane do funkcji. Jeśli nastąpi zmiana wartości funkcji, nie zmienia to oryginalnej wartości. W wywołaniu przez odniesienie zmiany zmiennej wewnątrz funkcji odzwierciedlają oryginalną wartość. The kluczowa różnica między wywołaniem według wartości a wywołaniem przez odniesienie jest to, w wywołaniu według wartości kopia zmiennych jest przekazywana do funkcji, aw wywołaniu przez odniesienie adresy zmiennych są przekazywane do funkcji.  W tym artykule omówiono różnicę między wywołaniem według wartości a wywołaniem przez odniesienie.

ZAWARTOŚĆ

1. Przegląd i kluczowa różnica
2. Co to jest połączenie według wartości
3. Co to jest połączenie przez odniesienie
4. Podobieństwa między wywołaniem według wartości a wywołaniem według odwołania
5. Porównanie obok siebie - Call by Value vs. Call by Reference w formie tabelarycznej
6. Podsumowanie

Co to jest połączenie według wartości?

W wywołaniu według wartości kopie zmiennych są przekazywane do funkcji. Funkcja może zmienić skopiowaną wartość, ale nie zmienia pierwotnej wartości. Pojęcie to można łatwo zrozumieć, zamieniając program na dwie liczby. Zapoznaj się z poniższym programem napisanym w środowisku Code Blocks.

Rysunek 01: Program do zamiany dwóch liczb

Zgodnie z programem podanym poniżej zmienna „a” ma wartość 20, a zmienna „b” ma wartość 30. Podczas wywoływania funkcji zamiany (a, b) te dwie wartości są przekazywane do funkcji zamiany. W funkcji zamiany „a” jest kopiowane do „x”, a „b” jest kopiowane do „y”. Teraz „x” ma wartość 20, a „y” ma wartość 30. Za pomocą zmiennej temp obie wartości są zamieniane. Podczas drukowania wartości „x” i „y” wewnątrz tej funkcji zamiany, wynik da 30 dla „x” i 20 dla „y”. Po zakończeniu wykonywania funkcji wymiany kontrolka powraca do funkcji głównej. Podczas drukowania wartości „a” i „b” w funkcji głównej wyniki będą oryginalnymi wartościami. Są to 20 dla „a” i 30 dla „b”. Zmiany dokonane za pomocą funkcji zamiany nie odzwierciedlają się w programie głównym.

Rysunek 02: Wyniki programu wymiany

„x” i „y” wewnątrz funkcji zamiany mają wartości zamiany, które wynoszą 30 i 20, ale wartości tych nie można użyć w programie głównym. Mimo że „x” i „y” mają zmienione wartości, są to lokalne zmienne do zamiany funkcji i nie można uzyskać do nich dostępu przez funkcję główną. Aby uniknąć tego problemu, można użyć połączenia przez referencję.

Co to jest połączenie przez odniesienie?

W tej metodzie adresy zmiennych są wysyłane do funkcji. Zapoznaj się z poniższym programem napisanym w środowisku Code Blocks.

Rysunek 03: Zamiana dwóch liczb za pomocą wskaźników

Zgodnie z podanym przykładem poniżej wartość „a” wynosi 20, a wartość „b” wynosi 30. Zamiast przekazywać kopie „a” i „b”, programista może wysłać adresy „a” i „b” „za pomocą funkcji zamiana (i a, i b).

Rysunek 04: Dane wyjściowe programu wymiany za pomocą wskaźników

Podczas wymiany funkcja powinna używać wskaźników, ponieważ adresy są przekazywane, a adresy te powinny być przechowywane przez wskaźniki. Wewnątrz funkcji adres „a” jest kopiowany do „x”, a adres „b” jest kopiowany do „y”. Używając zmiennej temp, wartości „x” i „y” są zamieniane. W tym wywołaniu metodą referencyjną zmiany w funkcji zamiany odzwierciedlają się w programie głównym. Wydrukowanie wartości „a” i „b” w głównym da zamienione wartości. Teraz wynik „a” wynosi 30, a „b” wynosi 20. Ponieważ funkcja przyjmuje adres zmiennych, zmiany wprowadzone w funkcji wpływają na oryginalne wartości.

Jakie jest podobieństwo między wywołaniem według wartości a wywołaniem według odniesienia?

  • Te dwie metody są używane do wywoływania funkcji / metod.

Jaka jest różnica między wywołaniem według wartości a wywołaniem według odniesienia?

Call by Value vs. Call by Reference

W wywołaniu według wartości kopie zmiennych są przekazywane do funkcji, więc zmiany wprowadzone w funkcji nie będą modyfikować oryginalnej wartości. W wywołaniu przez odwołanie adres zmiennych jest przekazywany do funkcji, więc zmiany dokonane dla zmiennych wewnątrz funkcji zmodyfikują pierwotną wartość.
 Modyfikacja wartości
W wywołaniu według wartości pierwotna wartość się nie zmienia. W wywołaniu przez odniesienie zmieniają się oryginalne wartości.

streszczenie - Call by Value vs. Call by Reference

Wywołanie według wartości i wywołanie przez referencję to metody wywołania funkcji. Różnica między wywołaniem według wartości i wywołaniem przez odwołanie polega na tym, że w wywołaniu według wartości kopie zmiennych są przekazywane do funkcji, aw wywołaniu przez odniesienie adresy zmiennych są przekazywane do funkcji. Korzystanie z połączenia według wartości lub połączenia według odwołania zależy od zadania do wykonania.

Pobierz wersję PDF funkcji Call by Value vs Call by Reference

Możesz pobrać wersję PDF tego artykułu i używać go do celów offline zgodnie z cytatem. Pobierz tutaj wersję PDF Różnica między połączeniem według wartości a wywołaniem według odwołania

Odniesienie:

1.Jaiswal, Haresh. „11 Call by Value vs. Call by Reference”. Youtube, YouTube, 24 grudnia 2015 r. Dostępne tutaj