C ++ 'ın C üzerine cıvatalandığı ilk günlerinde NULL olarak tanımlandığı gibi kullanamazsınız (void*)0
. Başka bir işaretçiye NULL atayamazsınız void*
, bu da onu işe yaramaz hale getirir. O günlerde, 0
boş göstericiler için (sıfır) kullandığınız kabul edildi .
Bugüne kadar sıfırı boş gösterici olarak kullanmaya devam ettim ama etrafımdakiler kullanmakta ısrar ediyorlar NULL
. Ben şahsen NULL
mevcut bir değere bir isim ( ) vermek için herhangi bir fayda görmüyorum - ve ben de işaretçileri doğruluk değerleri olarak test etmek istiyorum:
if (p && !q)
do_something();
daha sonra sıfır kullanmak daha mantıklıdır (kullandığınız gibi NULL
, mantıksal olarak kullanamazsınız p && !q
- sıfır NULL
olduğunu varsaymadıkça açıkça karşılaştırmanız gerekir NULL
, bu durumda neden kullanılır NULL
).
NULL yerine sıfırı tercih etmek için nesnel bir neden var mı (ya da tam tersi) mi, yoksa sadece kişisel tercih mi?
Düzenleme: RAII ve istisnalar ile nadiren sıfır / NULL işaretçileri kullandığımı eklemeliyim (ve aslında söylemek istedim), ancak bazen hala onlara ihtiyacınız var.