In the early days of C++ when it was bolted on top of C, you could not use NULL as it was defined as
if (p && !q)
p && !q
Here's Stroustrup's take on this: C++ Style and Technique FAQ
In C++, the definition of
NULLis 0, so there is only an aesthetic difference. I prefer to avoid macros, so I use 0. Another problem with
NULLis that people sometimes mistakenly believe that it is different from 0 and/or not an integer. In pre-standard code,
NULLwas/is sometimes defined to something unsuitable and therefore had/has to be avoided. That's less common these days.
If you have to name the null pointer, call it
nullptr; that's what it's called in C++11. Then,
nullptrwill be a keyword.
That said, don't sweat the small stuff.