Melalui Rujukan lwn. Nilai dalam C
Apabila menghantar hujah kepada fungsi dalam C , terdapat dua kaedah utama: lulus nilai dan melalui rujukan. Memahami perbezaan antara dua pendekatan ini adalah penting untuk pengekodan yang berkesan.
Pass by Value
In pass by value, salinan hujah dibuat dalam skop fungsi . Salinan ini mempunyai rujukannya sendiri, berbeza daripada hujah asal. Oleh itu, mengubah suai pembolehubah tempatan dalam fungsi tidak mempunyai kesan ke atas objek asal di luar fungsi.
Lewati Rujukan
Lewati rujukan, sebaliknya, memberikan fungsi akses terus kepada objek asal. Walau bagaimanapun, tafsiran berbeza bagi istilah ini wujud:
Argumen lwn. Rujukan Parameter
Sesetengah individu merujuk kepada pass by reference sebagai lulus objek yang dirujuk, bukan hujah itu sendiri . Ini berbeza daripada nilai lulus, di mana objek baharu dicipta dalam fungsi.
Kebolehubahsuaian Objek
Orang lain mendakwa bahawa rujukan melalui menunjukkan objek tidak boleh diubah suai dalam pihak yang dipanggil. Dalam pandangan ini, fungsi yang mengubah suai nilai objek mempengaruhinya di dalam dan di luar skop fungsi.
Takrifan Lulus Melalui Rujukan
Untuk menjelaskan kekeliruan, biarkan kami mentakrifkan lulus melalui rujukan seperti berikut:
Hujah diluluskan melalui rujukan jika dan hanya jika sepadan parameter mempunyai jenis rujukan dan mengikat terus kepada ungkapan hujah. Dalam semua kes lain, ia adalah nilai lulus.
Contoh Rujukan Lulus berbanding Nilai
Pertimbangkan contoh berikut:
Nilai lulus:
Lulus dengan rujukan:
Implikasi Lulus Rujukan dan Nilai
Atas ialah kandungan terperinci Lulus Rujukan vs. Nilai dalam C : Apakah Perbezaannya dan Bilakah Saya Perlu Menggunakan Yang Mana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!