Rumah > pembangunan bahagian belakang > C++ > Petunjuk C: NULL, 0, atau nullptr – Mana Yang Perlu Saya Gunakan?

Petunjuk C: NULL, 0, atau nullptr – Mana Yang Perlu Saya Gunakan?

Patricia Arquette
Lepaskan: 2024-12-10 06:23:17
asal
535 orang telah melayarinya

C   Pointers: NULL, 0, or nullptr – Which Should I Use?

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!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan