title: C/C++中0与NULL区别是什么？用delete时，用p=0，还是用p=NULL好？为什么？
desc: 一直用null，结果老师推荐在c中用0.<br>如果是C呢？
topic: C++
content: 没有任何区别，可以使用NULL，也可以使用0，只是习惯而已，C语言本身要求在指针上下文中0会被编译器翻译为合适的空指针表达，使用NULL则只是一种对程序员（而不是对编译器）的提示这是空指针。即使在某些空指针不等于0地址的（奇葩）机器上，你也可以给一个指针赋值为NULL或者0，编译器会保证在指针上下文中将没有修饰的0转换成正确的空指针，也就是说NULL一定等于0，但是空指针不一定。关于空指针的种种，请参考C FAQs
answerer_tags: C/C++程序员