为什么在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.