C++ nullptr与NULL

少于 1 分钟阅读

NULL与nullptr的区别

NULL为宏定义

#define NULL 0

NULL的类型不明显,而一下情况会出现函数重载不明确的情况

void f1(int i){}
void f1(int* p){}

int main(){
  f1(NULL); ///< 调用函数不确定,编译器警告或报错
}

nullptr是一个特殊类型(nullptr_t)专门用来指代空指针。见下面代码

void f1(int i){}  ///< #1
void f1(int* p){} ///< #2

int main(){
  f1(nullptr); ///< 明确调用#2函数
}

标签:

分类:

更新时间: