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>
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!