Rumah >pembangunan bahagian belakang >C++ >Mengapa Rujukan C Tidak Boleh Ditetapkan Semula?

Mengapa Rujukan C Tidak Boleh Ditetapkan Semula?

Barbara Streisand
Barbara Streisandasal
2024-11-30 20:02:19962semak imbas

Why Can't C   References Be Reset?

Mengapa Rujukan dalam C tidak Boleh Ditetapkan Semula

Rujukan C, tidak seperti penunjuk, mematuhi dua ciri asas: ia mesti sentiasa merujuk objek yang sama dan tidak boleh batal. Walaupun penunjuk menawarkan fleksibiliti dalam menunjuk ke objek yang berbeza dan boleh ditetapkan kepada nol, C tidak mempunyai konsep "rujukan atau penunjuk tidak boleh dibatalkan, boleh dipasang semula." Ini menimbulkan persoalan mengapa rujukan tidak boleh ditetapkan semula.

Felix Nievelstein pada mulanya membangkitkan soalan ini, menekankan penggunaan rujukan untuk memastikan perkaitan antara objek kekal sah. Walau bagaimanapun, menurut Bjarne Stroustrup, pereka C , sebab utama ketidakbolehubah rujukan adalah untuk mengelakkan kemungkinan kekaburan dan ralat.

Dalam kata-kata Stroustrup, "Saya pernah mengalami pada masa lalu telah digigit oleh rujukan Algol68 di mana r1=r2 boleh sama ada menetapkan melalui r1 kepada objek yang dirujuk atau memberikan nilai rujukan baharu kepada r1 (mengikat semula r1) bergantung pada jenis r2 saya ingin mengelakkan masalah sedemikian dalam C ."

Dengan melarang penjilidan semula rujukan, C bertujuan untuk menghapuskan ketidakpastian dan risiko mengubah destinasi rujukan secara tidak sengaja. objek. Keputusan reka bentuk ini memastikan bahawa rujukan secara konsisten menghala ke objek yang sama, mencegah akibat yang tidak dijangka dan mengekalkan ketepatan program.

Atas ialah kandungan terperinci Mengapa Rujukan C Tidak Boleh Ditetapkan Semula?. 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