Perbezaan antara panggilan mengikut nilai dan panggilan dengan rujukan

Perbezaan antara panggilan mengikut nilai dan panggilan dengan rujukan

Perbezaan utama - Panggil dengan nilai vs panggilan dengan rujukan
 

Banyak bahasa pengaturcaraan menggunakan fungsi. Fungsi adalah satu set pernyataan untuk melaksanakan tugas tertentu. Kod utama boleh dibahagikan kepada beberapa fungsi dan memanggilnya. Terdapat dua cara untuk memanggil fungsi seperti panggilan dengan nilai dan panggilan dengan rujukan. Dalam panggilan dengan kaedah nilai, salinan pembolehubah dimasukkan ke dalam fungsi. Sekiranya terdapat perubahan dalam nilai fungsi, ia tidak mengubah nilai asal. Dalam panggilan dengan rujukan, perubahan pembolehubah di dalam fungsi mencerminkan nilai asal. The Perbezaan utama antara panggilan mengikut nilai dan panggilan dengan rujukan ialah, Dalam panggilan dengan nilai, salinan pembolehubah diserahkan kepada fungsi dan panggilan dengan rujukan, alamat pembolehubah diserahkan kepada fungsi.  Artikel ini membincangkan perbezaan antara panggilan mengikut nilai dan panggilan dengan rujukan.

Kandungan

1. Gambaran Keseluruhan dan Perbezaan Utama
2. Apa yang dipanggil dengan nilai
3. Apa yang dipanggil dengan rujukan
4. Persamaan antara panggilan mengikut nilai dan panggilan dengan rujukan
5. Perbandingan sampingan - Panggil dengan nilai vs panggilan dengan rujukan dalam bentuk jadual
6. Ringkasan

Apa yang dipanggil dengan nilai?

Dalam panggilan dengan nilai, salinan pembolehubah diserahkan kepada fungsi. Fungsi mungkin mengubah nilai yang disalin tetapi tidak mengubah nilai asal. Konsep ini dapat difahami dengan mudah dengan menukar dua program nombor.  Rujuk program C di bawah yang ditulis menggunakan persekitaran Blok Kod.

Rajah 01: Program untuk menukar dua nombor

Menurut program yang diberikan di bawah, pembolehubah 'A' mempunyai nilai 20 dan pembolehubah 'B' mempunyai nilai 30.  Semasa memanggil fungsi swap (a, b), kedua -dua nilai ini diserahkan kepada fungsi swap. Dalam fungsi swap, 'a' disalin ke dalam 'x' dan 'b' disalin ke dalam 'y'. Sekarang, 'x' mempunyai nilai 20 dan 'y' mempunyai nilai 30.  Menggunakan pemboleh ubah temp kedua -dua nilai ditukar. Apabila mencetak nilai 'x' dan 'y' di dalam fungsi swap itu, output akan memberikan 30 untuk 'x' dan 20 untuk 'y'. Apabila pelaksanaan fungsi swap selesai, kawalan kembali ke fungsi utama. Apabila mencetak nilai 'a' dan 'b', dalam fungsi utama, hasilnya akan menjadi nilai asal. Mereka berusia 20 tahun untuk 'a' dan 30 untuk 'b'.  Perubahan yang dibuat menggunakan fungsi swap tidak mencerminkan dalam program utama.

Rajah 02: Output program pertukaran

'x' dan 'y' di dalam fungsi swap mempunyai nilai swap yang 30 dan 20 tetapi nilai -nilai tersebut tidak dapat digunakan dalam program utama. Walaupun 'x' dan 'y' mempunyai nilai bertukar, mereka adalah pembolehubah tempatan untuk menukar fungsi dan tidak dapat diakses oleh fungsi utama. Untuk mengelakkan masalah ini, hubungi dengan rujukan boleh digunakan.

Apa yang dipanggil dengan rujukan?

Dalam kaedah ini, alamat pembolehubah dihantar ke fungsi. Rujuk program C di bawah yang ditulis menggunakan persekitaran Blok Kod.

Rajah 03: Tukar dua nombor menggunakan petunjuk

Menurut contoh yang diberikan di bawah, nilai 'A' ialah 20 dan nilai 'B' ialah 30. Daripada lulus salinan 'A' dan 'B', pengaturcara boleh menghantar alamat 'A' dan 'B' menggunakan fungsi, swap (& A, & B).

Rajah 04: Output program pertukaran menggunakan petunjuk

Di dalam pertukaran, fungsi harus menggunakan petunjuk kerana alamat diluluskan dan alamat tersebut harus dipegang oleh petunjuk. Di dalam fungsi, alamat 'A' disalin ke 'X' dan alamat 'B' disalin ke 'Y'. Menggunakan pemboleh ubah temp, nilai 'x' dan 'y' ditukar. Dalam panggilan ini dengan kaedah rujukan, perubahan di dalam fungsi swap mencerminkan program utama. Mencetak nilai 'a' dan 'b' di bahagian utama akan memberikan nilai swap. Sekarang output 'a' adalah 30 dan 'b' adalah 20. Oleh kerana fungsi mengambil alamat pembolehubah, perubahan yang dibuat di dalam fungsi mempengaruhi nilai asal.

Apakah persamaan antara panggilan dengan nilai dan panggilan dengan rujukan?

  • Kedua -dua kaedah ini digunakan untuk memanggil fungsi/kaedah.

Apakah perbezaan antara panggilan dengan nilai dan panggilan dengan rujukan?

Hubungi dengan nilai vs panggilan dengan rujukan

Dalam panggilan dengan nilai, salinan pembolehubah disalurkan ke dalam fungsi supaya perubahan yang dibuat di dalam fungsi, tidak akan mengubah nilai asal. Dalam panggilan dengan rujukan, alamat pembolehubah diserahkan kepada fungsi, jadi perubahan yang dibuat untuk pembolehubah di dalam fungsi, akan mengubah nilai asal.
 Pengubahsuaian nilai
Dalam panggilan dengan nilai, nilai asal tidak berubah. Dalam panggilan dengan rujukan, nilai asal berubah.

Ringkasan - Hubungi dengan nilai vs panggilan dengan rujukan

Panggil dengan nilai dan panggilan dengan rujukan adalah kaedah memanggil fungsi. Perbezaan antara panggilan mengikut nilai dan panggilan dengan rujukan adalah bahawa dalam panggilan dengan nilai salinan pembolehubah disampaikan kepada fungsi dan dalam panggilan dengan rujukan, alamat pembolehubah diserahkan kepada fungsi.  Menggunakan panggilan mengikut nilai atau panggilan dengan rujukan bergantung pada tugas untuk melaksanakan.

Muat turun versi PDF Call by Value vs Call dengan rujukan

Anda boleh memuat turun versi PDF artikel ini dan menggunakannya untuk tujuan luar talian mengikut nota petikan. Sila muat turun versi pdf di sini perbezaan antara panggilan mengikut nilai dan hubungi dengan rujukan

Rujukan:

1.Jaiswal, Haresh . "11 panggilan mengikut nilai vs panggilan dengan rujukan." Youtube, YouTube, 24 Dis. 2015. Terdapat di sini