指针空值类型-nullptr
在C++中指针的初始化通常有两种:
char *ptr = 0;
char *ptr = NULL;
NULL的宏定义:
#ifndef NULL#ifdef __cplusplus //预处理指令,用于识别代码是否处于c++环境中。#define NULL 0#else#define NULL ((void *)0)#endif
#endif
如果处于c++环境 NULL就是0 如果处于C语言的环境NULL表示(void *)0。
在C++环境中void * 无法隐式转换为其他类型的指针 随意用0代替
用0或NULL不能很好的覆盖全部场景所以引入新的关键字(nullptr)用于指针的初始化
C++11中 nullptr 可以隐式转换为其他的指针类型 比如 int*、char* 以及 double* 指针类型
int* ptr1 = nullptr;
char* ptr2 = nullptr;
double* ptr3 = nullptr;