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

Mengapakah Penunjuk `ini` dalam C sebagai Penunjuk dan Bukan Rujukan?

Patricia Arquette
Lepaskan: 2024-11-27 18:45:13
asal
817 orang telah melayarinya

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

Sifat Penunjuk 'ini' dalam C

Dalam C , kata kunci 'ini' mewakili objek semasa dalam kaedah. Walau bagaimanapun, walaupun tingkah lakunya, 'ini' secara teknikalnya adalah penunjuk dan bukannya rujukan. Perbezaan ini secara sejarah telah mencetuskan kekeliruan dalam kalangan pengaturcara.

Mengapa 'ini' Penunjuk dan Bukan Rujukan?

Semasa pembangunan awal C , rujukan tidak disokong . Apabila ia diperkenalkan, ia menjadi penting untuk pembebanan operator untuk berfungsi dengan baik. Walau bagaimanapun, 'ini' telah pun ditetapkan sebagai penunjuk dalam teras bahasa.

Argumen untuk Rujukan 'ini'

Sesetengah hujah menyokong menjadikan 'ini' sebagai rujukan dan bukannya penunjuk:

  • Dijamin Bukan NULL: Rujukan dalam C memastikan objek yang dirujuk wujud dan bukan NULL, yang sejajar dengan corak reka bentuk yang mempromosikan akses selamat kepada objek.
  • Keselamatan: Rujukan menghalang penunjuk berjuntai dan ralat berkaitan penuding lain, menambah baik kod kebolehpercayaan.
  • Kesederhanaan Sintaksis: Tatatanda titik '.' untuk mengakses rujukan adalah lebih ringkas dan boleh dibaca daripada '->' atau operator '*' yang digunakan dengan penunjuk.

Sebab Di Sebalik Penunjuk 'ini'

Walaupun kelebihan ini, 'ini' kekal sebagai penunjuk dalam C untuk beberapa sebab:

  • Keserasian Belakang: Mengekalkan keserasian ke belakang dengan kod yang ditulis sebelum rujukan wujud adalah penting untuk mengelakkan daripada melanggar atur cara sedia ada.
  • Ketekalan dengan Tugasan: Apabila membebankan operator tugasan, mengembalikan *ini lebih konsisten dengan jenis pulangan biasa fungsi C.
  • Evolusi Sejarah: 'ini' berkembang dari semasa ke semasa, dibentuk oleh pelbagai keputusan reka bentuk dan maklum balas pengguna. Faedah menukarnya kepada rujukan pada peringkat ini lebih besar daripada kemungkinan gangguan yang akan ditimbulkannya.

Kesimpulan

Sifat penunjuk 'ini' dalam C adalah hasil evolusi sejarah bahasa dan keperluan untuk keserasian ke belakang. Walaupun hujah wujud untuk menjadikan 'ini' sebagai rujukan, status penunjuknya kekal berakar kukuh dalam ekosistem C, menyediakan asas yang konsisten dan stabil untuk pelaksanaan kaedah dan interaksi objek.

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