1。NULL的作用&用法:
防止指针在内存里面瞎指(野指针),这样更安全
2。NULL的本质:
C:是一个void*类型指针。给任何一个指针初始化为NULL,实际上是(void*)类型指针对0强制类型转换;
允许void*类型变量隐式转换为其他类型
C++: NULL是一个宏定义,编译阶段赋值为0。仅仅是一个0,不允许隐式,必须强制(显式)
3。函数重载引入nullptr。nullptr本质是一个关键字,会自动类型转换所赋值的指针类型
因为在我们印象中NULL是一个空指针,我们自然的希望test(NULL)执行test(char*),但是在我们cpp中NULL仅仅就是个数,所以为了解决此问题,引入nullptr
nullptr如何使用
nullptr关键字用于标识空指针,是std::nullptr_t类型的(constexpr)变量。它可以转换成任何指针类型和bool布尔类型(主要是为了兼容普通指针可以作为条件判断语句的写法),但是不能被转换为整数。