Penunjuk dalam C : NULL lwn. 0
Pada peringkat awal C , penggunaan NULL sebagai penuding nol dihadkan kepada tanda kosong, menjadikannya kurang praktikal. Akibatnya, pengaturcara menerima pakai konvensyen menggunakan 0 (sifar) untuk mewakili penunjuk nol.
Walaupun pengenalan NULL sebagai perwakilan bernama 0, perdebatan tentang penggunaan yang masih berterusan. Sesetengah pengaturcara berhujah untuk 0, memetik keupayaan untuk menguji penunjuk sebagai nilai kebenaran menggunakan operator logik (cth., jika (p && !q) do_something()). Mereka berpendapat bahawa menggunakan NULL memerlukan perbandingan yang jelas terhadap NULL atau bergantung pada andaian bahawa NULL adalah sama dengan sifar.
Yang lain menyokong NULL, mengulangi pandangan Bjarne Stroustrup bahawa ia hanyalah perbezaan estetik kerana NULL ditakrifkan sebagai 0 dalam C . Stroustrup juga menyerlahkan potensi kekeliruan apabila NULL tersilap dilayan sebagai berbeza daripada 0 atau bukan integer.
Walaupun kedua-dua pendekatan boleh dibahaskan, Stroustrup menggesa agar tidak membimbangkan yang berlebihan terhadap butiran kecil. Dalam era RAII dan pengecualian, penunjuk nol kurang kerap digunakan, tetapi keperluannya sekali-sekala kekal.
Bagi mereka yang memilih perwakilan bernama, C 11 memperkenalkan nullptr sebagai kata kunci yang ditetapkan untuk penunjuk nol. Pengesyoran ini berfungsi untuk membezakan penunjuk nol daripada nilai integer lain dan menghapuskan potensi kekeliruan. Akhirnya, pilihan antara NULL dan 0 atau nullptr bergantung kepada keutamaan peribadi, kerana tiada keunggulan objektif antara kedua-dua pendekatan.
Atas ialah kandungan terperinci Petunjuk C: NULL, 0, atau nullptr – Mana Yang Perlu Saya Gunakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!