Rumah > pembangunan bahagian belakang > C++ > Adakah `if (penunjuk)` Cukup untuk Menyemak Kesahan Penunjuk dalam C ?

Adakah `if (penunjuk)` Cukup untuk Menyemak Kesahan Penunjuk dalam C ?

DDD
Lepaskan: 2024-11-05 07:12:02
asal
547 orang telah melayarinya

Is `if (pointer)` Enough to Check Pointer Validity in C  ?

Menyemak Nilai Penunjuk: jika (penunjuk) vs jika (penunjuk != NULL)

Apabila bekerja dengan penunjuk dalam C, ia adalah penting untuk menentukan kesahihannya. Bolehkah anda hanya menggunakan ungkapan if (penunjuk) untuk menguji sama ada penunjuk bukan NULL? Atau adakah anda perlu menulis secara eksplisit jika (penunjuk != NULL)?

Jawapan:

Piawaian C membenarkan anda menggunakan jika (penunjuk) untuk menguji penunjuk kesahan. Penunjuk bukan nol ditukar kepada benar secara tersirat, manakala penunjuk nol ditukar kepada palsu. Tingkah laku ini ditakrifkan dalam bahagian standard C 11 tentang Penukaran Boolean:

<code class="cpp">A prvalue of arithmetic, unscoped enumeration, pointer, or pointer to member type can be converted to a
prvalue of type bool. A zero value, null pointer value, or null member pointer value is converted to
false; any other value is converted to true. A prvalue of type std::nullptr_t can be converted to a prvalue of
type bool; the resulting value is false.</code>
Salin selepas log masuk

Oleh itu, anda boleh menulis dengan selamat jika (penunjuk) untuk menyemak sama ada penuding bukan NULL. Walau bagaimanapun, untuk kejelasan dan ketekalan, adalah disyorkan untuk menggunakan binaan eksplisit if (penunjuk != NULL) atau jika (penunjuk) mengikut kesesuaian.

Atas ialah kandungan terperinci Adakah `if (penunjuk)` Cukup untuk Menyemak Kesahan Penunjuk dalam C ?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan