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

Mary-Kate Olsen
Lepaskan: 2024-10-30 21:44:02
asal
885 orang telah melayarinya

##  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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

Memanggil fungsi dengan:

<code class="cpp">int f = 0, s = 0;
get5and6(f, s);</code>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!