Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C와 C++에서 NULL 포인터가 다르게 정의되는 이유는 무엇입니까?

<시간/>

C++에서 널 포인터는 다음과 같이 정의할 수 있습니다. 널 포인터 상수는 −

와 같이 값이 0인 정수 상수 표현식입니다.

int*p =0;

그러나 c에서 null 포인터는 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.