在C++11之前,NULL
被用来表示空指针,但它只是一个宏,定义为0
或((void*)0)
,这在某些情况下可能会导致类型混淆和错误。为了解决这些问题,C++11引入了nullptr
关键字,它是一种特殊的空指针字面量,具有自己的类型nullptr_t
,可以自动转换为任何指针类型,但不会转换为非指针类型。
1. 基本用法
使用nullptr
来初始化或赋值给指针。
int *ptr = nullptr;
2. 与函数重载一起使用
nullptr
可以帮助解决函数重载中的歧义问题,特别是涉及到指针和整数类型的重载。
void func(int) {
std::cout << "func(int) called" << std