Adakah if (penunjuk) Bersamaan dengan if (penunjuk != NULL)?
Dalam pengaturcaraan C, adalah amalan biasa untuk menyemak sama ada penunjuk bukan NULL untuk memastikan ia menunjuk ke lokasi memori yang sah. Secara tradisinya, ini dicapai dengan keadaan if (pointer != NULL). Walau bagaimanapun, terdapat sintaks alternatif yang berpotensi: jika (penunjuk).
Adakah Selamat Digunakan jika (penunjuk)?
Ya, jika (penunjuk) adalah sah sintaks dan bersamaan dengan if (penunjuk != NULL). Sebabnya terletak pada peraturan penukaran tersirat C.
Penukaran Boolean Tersirat
Mengikut standard C 11 tentang Penukaran Boolean:
"A prnilai aritmetik, penghitungan tidak berskop, penunjuk atau penuding kepada jenis ahli boleh ditukar kepada nilai jenis bool Nilai sifar, nilai penunjuk nol atau nilai penuding ahli nol ditukar kepada nilai benar. "
Dalam erti kata lain, apabila nilai penunjuk digunakan dalam konteks boolean, pengkompil secara tersirat memaksanya menjadi nilai boolean. Penunjuk nol dianggap sebagai palsu, manakala semua nilai penuding lain dianggap sebagai benar.
Contoh Praktikal
Pertimbangkan kod berikut:
<code class="cpp">int* p = nullptr; if (p) { // Do something } else { // Do something else }</code>
Dalam contoh ini, syarat if (p) adalah sah kerana penunjuk nol p secara tersirat ditukar kepada palsu. Jika p menunjuk ke lokasi memori yang sah, keadaan akan dinilai kepada benar.
Kesimpulan
Walaupun secara teknikalnya betul untuk menggunakan if (penunjuk) dan bukannya if ( penunjuk != NULL), yang terakhir adalah lebih jelas dan disyorkan untuk tujuan kejelasan dan kebolehbacaan.
Atas ialah kandungan terperinci Adakah `if (penunjuk)` Bersamaan dengan `jika (penunjuk != NULL)` dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!