一 关于NULL、0、nullptr
NULL是宏定义,在C语言中NULL被定义为:一个void* 指针,指向的地址为0; C++中
NULL会被定义为0
#ifdef __cplusplus ---简称:cpp c++ 文件
#define NULL 0
#else
#define NULL ((void *)0)
#endif
C++11引入了nullptr 来表示空指针,用来解决NULL的二意性问题
void f(void*)
{
}
void f(int)
{
}
int main()
{
f(NULL); // what function will be called? ,使用nullptr会调用f(void*)
}
NULL、0与nullptr的区别
本文深入探讨了C/C++中NULL、0和nullptr的概念及其区别。NULL在C语言中被定义为指向地址0的void*指针,在C++中则被定义为0。C++11引入了nullptr,用于明确表示空指针,解决了NULL的二义性问题。通过示例说明了在重载函数中使用nullptr可以避免调用歧义。
394

被折叠的 条评论
为什么被折叠?



