为什么c++既有NULL 又有 nullptr?有什么不一样吗?如果一样,为什么要有两个名字?
来源:9-3 static和单例模式的实现
TokugawaNakashima
2022-01-04
为什么c++既有NULL 又有 nullptr?有什么不一样吗?如果一样,为什么要有两个名字?
写回答
1回答
-
在C++中,NULL是一个宏,其实质是0;而nullptr是从C++11开始引入的关键字。
在C语言中,NULL的定义为(void *)0,因为C语言可以隐式转换;但在C++中,类型转换时可能会报错。C++11加入了nullptr,可以保证在任何情况下都代表空指针,所以C++中最好使用nullptr。
PS:这样的问题之前有同学应该问过,请在问问题之前先查询下是否一些有类似的问题及回答。
112022-01-08
相似问题
老师好,有一个关于内存地址的问题
回答 1
是不是使用nullptr比NULL好一点
回答 1
数据的那个符号,本质上是什么?
回答 1
为什么成员函数都需要static呢?
回答 2
const第一个demo验证有问题
回答 1