NULL在c++中是一个宏,是一个空指针常量,如果将NULL扩展为常数,那么这个数是0,类型为int。
所以,常数0既是整型常量,也是空指针常量,这就有可能导致二义性问题。因此,c++11新标准引入了nullptr,将其作为空指针常量
。
NULL在C++中就是0,这是因为在C++中void* 类型是不允许隐式转换成其他类型的,所以之前C++中用0来代表空指针,但是在重载整形的情况下,会出现上述的问题。所以,C++11加入了nullptr,可以保证在任何情况下都代表空指针,而不会出现上述的情况,因此,建议以后还是都用nullptr替代NULL吧,而NULL就当做0使用
。
C++中的NULL和nullptr的区别:以后用空指针就用nullptr
最新推荐文章于 2024-06-25 19:09:44 发布