c++ 中的空指针和void指针

指针空值nullptr

以往用0或者NULL去表达空指针的问题:
C/C++的NULL宏是个被有很多潜在BUG的宏。因为有的库把其定义成整数0,有的定义成 (void*)0。在C的时代还好。但是在C++的时代,这就会引发很多问题。
C++11使用nullptr关键字,是表达更准确,类型安全的空指针
#include 
using namespace std;
int main() {
//!void voidObject; 错,不能声明void类型的变量
void *pv;	//对,可以声明void类型的指针
int i = 5;
pv = &i;	//void类型指针指向整型变量
int *pint = static_cast(pv); //void指针转换为int指针
cout << "*pint = " << *pint << endl;
return 0;
}


你可能感兴趣的:(C/C++)