C : Perbezaan Antara Hujah yang Melepasi "Mengikut Nilai" dan "Mengikut Rujukan"
Dalam C , interaksi antara parameter dan parameternya hujah ditentukan oleh jenis parameter. Walaupun hantaran nilai adalah tipikal, hantaran rujukan menawarkan kelebihan yang berbeza dalam senario tertentu.
Menanggap Disebalik Lulus Rujukan
Harus rujukan mempunyai dua tujuan utama:
Contoh: Mengubah Suai Nilai Argumen
Pertimbangkan fungsi berikut:
<code class="cpp">void get5and6(int *f, int *s) { *f = 5; *s = 6; }</code>
Di sini, penunjuk digunakan untuk menyampaikan hujah dengan rujukan. Dengan memanggil fungsi dengan:
<code class="cpp">int f = 0, s = 0; get5and6(&f, &s);</code>
f dan s akan ditetapkan kepada 5 dan 6, masing-masing, kerana fungsi mengubah suai nilai yang ditunjukkan oleh rujukan.
Sebagai alternatif, menggunakan rujukan terus menghasilkan hasil yang sama:
<code class="cpp">void get5and6(int &f, int &s) { f = 5; s = 6; }</code>
Memanggil fungsi dengan:
<code class="cpp">int f = 0, s = 0; get5and6(f, s);</code>
menghasilkan kesan yang sama.
Contoh: Pengoptimuman Prestasi
Pertimbangkan fungsi yang menyimpan keadaan permainan:
<code class="cpp">void SaveGame(GameState& gameState) { gameState.update(); gameState.saveToFile("save.sav"); }</code>
Tanpa hantaran rujukan, salinan objek GameState akan dibuat di dalam fungsi, yang berpotensi menggunakan sumber yang ketara. Dengan melalui rujukan, hanya alamat objek disalin, mengelakkan overhed menyalin kandungannya yang besar.
Bila Menggunakan Rujukan
Melalui rujukan adalah berfaedah apabila :
Const Rujukan
Rujukan Const memastikan hujah tidak boleh diubah suai dalam fungsi. Ia digunakan untuk menguatkuasakan akses baca sahaja kepada parameter tertentu.
Atas ialah kandungan terperinci ## C : Bilakah Anda Harus Meluluskan Hujah mengikut Nilai berbanding Rujukan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!