Rumah >pembangunan bahagian belakang >C++ >Adakah Hujah Penunjuk C Lulus Benar-Benar Bernilai?

Adakah Hujah Penunjuk C Lulus Benar-Benar Bernilai?

DDD
DDDasal
2024-12-15 02:37:09186semak imbas

Is C   Pointer Argument Passing Truly Pass-by-Value?

Adakah Melepasi Hujah Penunjuk Melepasi Nilai dalam C ?

Dalam C , menghantar hujah penunjuk sememangnya lulus dengan nilai. Ini bermakna salinan kandungan pemboleh ubah penunjuk (alamat objek yang ditunjuk) dihantar ke fungsi.

Sebarang pengubahsuaian yang dibuat kepada nilai penuding dalam badan fungsi tidak akan menjejaskan penuding asal di luar fungsi. Walau bagaimanapun, perubahan yang dibuat pada nilai objek yang ditunjuk ditunjukkan.

Menggunakan Penunjuk ke Penunjuk sebagai Argumen Fungsi

Untuk mengubah suai nilai penunjuk itu sendiri dalam fungsi, penunjuk kepada penunjuk mesti digunakan sebagai hujah. Teknik ini boleh diterima dan merupakan prosedur standard untuk senario sedemikian. Dengan menggunakan & operator sebelum hujah penunjuk, alamat penuding dihantar.

Rujukan vs. Penunjuk

Semasa menggunakan penunjuk untuk mencapai tingkah laku ini adalah amalan biasa , dalam C , menggunakan rujukan biasanya lebih diutamakan berbanding penunjuk atas beberapa sebab:

  • Mengurangkan kerumitan sintaksis dalam badan fungsi
  • Pembekalan maklumat lanjut kepada pengkompil

Kelemahan Rujukan

  • Melanggar peraturan nilai pas , memerlukan perhatian kepada tingkah laku parameter
  • Tidak disokong oleh C

Dalam kes khusus penuding kepada penuding, menggunakan rujukan memudahkan pelaksanaan. Malah mungkin untuk menghapuskan tahap penuding sepenuhnya, sebaliknya lulus satu rujukan.

Atas ialah kandungan terperinci Adakah Hujah Penunjuk C Lulus Benar-Benar Bernilai?. 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