Rumah >pembangunan bahagian belakang >C++ >## C : Bilakah Anda Harus Meluluskan Hujah mengikut Nilai berbanding Rujukan?

## C : Bilakah Anda Harus Meluluskan Hujah mengikut Nilai berbanding Rujukan?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-30 21:44:02943semak imbas

##  C  : When Should You Pass Arguments by Value vs. by Reference?

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:

  • Mengubah Suai Nilai Argumen: Parameter rujukan membenarkan fungsi mengubah suai nilai hujahnya. Sebaliknya, parameter nilai mencipta salinan argumen, membuat sebarang perubahan diasingkan dalam fungsi.
  • Peningkatan Prestasi: Melewati rujukan mengelakkan keperluan untuk menyalin objek ke dalam fungsi, yang boleh dengan ketara meningkatkan prestasi, terutamanya untuk objek besar atau kompleks.

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 :

  • Objek yang dilalui adalah besar atau kompleks.
  • Fungsi dipanggil dengan kerap (cth., dalam gelung).

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn