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

指针空值nullptr

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


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。