Rumah > pembangunan bahagian belakang > C++ > Bolehkah Rujukan C Menjadi Batal?

Bolehkah Rujukan C Menjadi Batal?

Patricia Arquette
Lepaskan: 2024-12-17 13:58:11
asal
534 orang telah melayarinya

Can a C   Reference Be Null?

Adakah Rujukan Null Suatu Kemungkinan?

Dalam kod ini, rujukan diisytiharkan dan dimulakan kepada nilai yang diperoleh daripada penyahrujukan penunjuk nol:

int &nullReference = *(int*)0;
Salin selepas log masuk

Walaupun ia mungkin kelihatan sah berdasarkan tingkah laku pengkompil, adalah penting untuk memahami bahawa rujukan berbeza daripada penunjuk.

Menurut Piawaian C (8.3.2/1):

"Rujukan hendaklah dimulakan untuk merujuk kepada objek atau fungsi yang sah... khususnya, rujukan null tidak boleh wujud dalam program yang ditakrifkan dengan baik."

Ini menekankan bahawa rujukan batal, yang tidak merujuk kepada mana-mana objek yang sah, bukan konsep yang ditakrifkan dengan baik dalam C .

Tambahan pula, Piawaian (1.9/4) menyatakan bahawa "kesan penyahrujukan penuding nol" tidak ditentukan. Dalam kes ini, apabila kita mempunyai rujukan yang dimulakan menggunakan penuding nol, ini bermakna membatalkan rujuk penuding nol itu sendiri, yang merupakan tingkah laku yang tidak ditentukan secara jelas.

Oleh itu, walaupun kod itu mungkin disusun tanpa amaran, ia tidak sah kod C dan harus dielakkan. Rujukan nol bukan konsep yang sah dalam bahasa dan sebarang percubaan untuk menciptanya akan mengakibatkan tingkah laku yang tidak ditentukan.

Atas ialah kandungan terperinci Bolehkah Rujukan C Menjadi Batal?. 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