Rumah >pembangunan bahagian belakang >C++ >Mengapakah Penunjuk `ini` dalam C Bukan Rujukan?

Mengapakah Penunjuk `ini` dalam C Bukan Rujukan?

Patricia Arquette
Patricia Arquetteasal
2024-11-24 16:50:18790semak imbas

Why is the `this` Pointer in C   Not a Reference?

Mengapa 'ini' Penunjuk dan Bukan Rujukan?

Pengaturcara sering menghadapi kekeliruan bahawa 'ini' ditetapkan sebagai penunjuk tetapi bukan rujukan dalam C . Ini menimbulkan persoalan tentang alasan di sebalik pilihan reka bentuk ini.

Konteks Sejarah

Apabila C berada di peringkat awal pembangunannya, rujukan tidak wujud dalam bahasa tersebut. Penunjuk adalah satu-satunya mekanisme untuk mengakses memori secara tidak langsung. Rujukan telah diperkenalkan kemudian, membolehkan pengendali dibebankan dan berfungsi dengan lancar.

Sebab Menjadi Penunjuk

Walaupun rujukan menawarkan beberapa kelebihan berbanding penunjuk, seperti kesahihan yang terjamin dan pengendalian ingatan yang lebih selamat, 'ini' kekal sebagai penunjuk atas sebab sejarah. C berkembang secara berperingkat, menggabungkan maklum balas daripada komuniti pengguna. Nilai mengekalkan keserasian ke belakang untuk kod sedia ada mengatasi potensi manfaat menukar 'ini' kepada rujukan.

Argumen Tambahan untuk Rujukan

Walaupun rasional sejarah, beberapa hujah menyokong membuat 'ini' a rujukan:

  • Item 1 daripada C yang Lebih Berkesan : Rujukan disyorkan apabila objek yang sah dipastikan, yang biasanya berlaku untuk 'ini'.
  • Keselamatan: Rujukan menghalang kerosakan ingatan akibat penunjuk sesat, meningkatkan keselamatan.
  • Sintaks: Rujukan menggunakan operator titik (.) yang lebih ringkas dan menyenangkan dari segi estetika untuk mengakses sifat, berbanding dengan operator penunjuk (-> atau *).

Kesimpulan

Sementara rujukan menawarkan kelebihan dalam senario tertentu, 'ini' kekal sebagai penunjuk dalam C kerana pertimbangan sejarah. Kepentingan keserasian ke belakang dan evolusi beransur-ansur bahasa telah membentuk keputusan ini, yang berterusan walaupun terdapat potensi manfaat yang mungkin dibawa oleh rujukan.

Atas ialah kandungan terperinci Mengapakah Penunjuk `ini` dalam C Bukan 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