Re:The ugliest C feature: <tgmath.h>
by kzrdude on Monday December 26, 2011 @06:50PM
(#3394246)
Not sure in which sense it is C++ only. 0 is a null pointer constant in C.
[ Parent
| on HN ]
My mistake. I could have sworn that only C++ defined 0 to be equivalent to a null pointer. I guess my confusion stemmed from the fact that the NULL preprocessor macro in C++ is actually defined to be just "0" (or a magical-seeming "__null" in recent versions of g++), whereas in any modern C implementation I've seen, it's "((void *)0)".
Though there are cases in which passing an unadorned "0" as a null pointer can be wrong; there's a null-terminated varargs function example here: