一、指针变量建议初始化为nullptr
否则在使用该指针进行判断的时候会引发歧义
比如下面的代码,我实际上想输出的是aaa,但实际上输出的却是bbb。因为p指向的是一块未知的地址
int *p;
if(p==nullptr)
{
std::cout<<"aaa";
}
else
{
std::cout<<"bbb";
}
//建议:int *p=nullptr;
二、NULL和nullptr的区别:
NULL是c++98的,其实就是define 0
ifdef __cplusplus
if !defined(__MINGW32__) && !defined(_MSC_VER)
define NULL __null
else
define NULL 0 //一般是0或者下面的void*
endif
else
define NULL ((void*)0)
将指针初始化为NULL不是很好,除非你的C++版本没有到11。
nullptr是一个关键之,c++11引入的,建议将指针初始化为nullptr,因为nullptr可以代表int*,double*,void*等任何含义。

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



