Rumah >pembangunan bahagian belakang >C++ >Apa yang Berlaku Apabila Anda Menyahrujuk Penunjuk NULL untuk Mencipta Rujukan dalam C?

Apa yang Berlaku Apabila Anda Menyahrujuk Penunjuk NULL untuk Mencipta Rujukan dalam C?

Linda Hamilton
Linda Hamiltonasal
2024-12-05 00:22:12690semak imbas

What Happens When You Dereference a NULL Pointer to Create a Reference in C  ?

Menujuk NULL Penunjuk untuk Rujukan dalam C

Apabila berurusan dengan petunjuk dan rujukan dalam C , adalah penting untuk memahami akibat daripada membatalkan rujukan a penunjuk NULL. Dalam konteks ini, "dereferencing" merujuk kepada proses mendapatkan nilai yang disimpan pada alamat memori yang ditunjuk oleh penuding.

Dalam coretan kod yang disediakan:

int* ptr = NULL;
int& ref = *ptr;
int* ptr2 = &ref;

baris " int& ref = *ptr" nampaknya menyahrujuk penunjuk NULL "ptr" untuk mendapatkan rujukan. Walau bagaimanapun, tingkah laku ini tidak ditentukan dalam piawai C.

Menurut piawai C (8.3.2/4 "Rujukan"), mencipta rujukan NULL tidak ditentukan kerana ia akan melibatkan penyahrujukan penunjuk NULL. Tindakan ini membentuk tingkah laku yang tidak ditentukan seperti yang dinyatakan dalam piawaian.

Adalah penting untuk diingat bahawa penyahrujukan penunjuk NULL boleh membawa kepada hasil yang tidak dijangka dan ranap program, jadi ia harus sentiasa dielakkan. Satu pengecualian kepada peraturan ini ialah apabila menggunakan pengendali "sizeof", di mana operan kepada "sizeof" sebenarnya tidak dinilai, jadi dereference tidak pernah berlaku.

Atas ialah kandungan terperinci Apa yang Berlaku Apabila Anda Menyahrujuk Penunjuk NULL untuk Mencipta Rujukan dalam C?. 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