NULL 与 nullptr:空指针表示形式的演变
在 C 0x 中,传统的 NULL 宏被 nullptr 取代。这种变化不仅仅是表面上的,而且是表面上的。它对语言对空指针的处理进行了重大改进。
为什么要替换?
NULL,定义为 0,在重载函数解析中产生了潜在的歧义。考虑以下代码:
void f(int); void f(foo *);
如果调用 f(NULL),编译器不确定是调用 f(int) 还是 f(void *)。这种歧义可以通过使用 nullptr 来解决,它的类型为 std::nullptr_t 并且可以隐式转换为任何指针类型。
nullptr 的好处
与 NULL、nullptr 相比与合作时具有多种优势指针:
以上是NULL 与 nullptr:为什么 C 的空指针表示法发生变化?的详细内容。更多信息请关注PHP中文网其他相关文章!