感谢,在C11 standard是这样定义:6.3.2.3-3: An integer constant expression with thevalue 0, or such an expression cast to type void *,is called a null pointer constant.If a null pointer constant is converted to a pointertype, the resulting pointer, called a null pointer,is guaranteed to compare unequal to a pointer to anyobject or function.所以我们不能说NULL是0,这是有问题的。至于要怎么说怎么解释给新手听,还要再想想 Orz
N4582 http://imgur.com/ZseDxIWThe macro NULL is an implementation-defined C++ nullpointer constant in this International StandardN4582, 18.2, 3但我觉得C++11都出了,为何不用nullptr?直接警告新手,使用nullptr而不是0或NULL