为什么在C和C ++中对NULL指针的定义不同?
在C++中,可以将null指针定义为null指针常量是值为0的整数常量表达式,例如-
int*p=0;
但是在c中,可以将null指针定义为null指针常量,它是一个值为0的整数常量表达式,或者是将此类表达式强制转换为void*的表达式,例如-
Int*p=0;;
要么
int*p=(void*)0;
在C++11中,关键字“nullptr”用于表示nullpointer。
int*ptr=nullptr;
在C中
示例
#include <stdio.h> int main() { int *p= NULL; //initialize the pointer as null. printf("The value of pointer is %u",p); return 0; }
输出结果
The value of pointer is 0.
在C++中
示例
#include <iostream> using namespace std; int main() { int *p= NULL; //initialize the pointer as null. cout<<"The value of pointer is "; cout<<p; return 0; }
输出结果
The value of pointer is 0.