Computer >> Máy Tính >  >> Lập trình >> lập trình C

Tại sao con trỏ NULL được định nghĩa khác nhau trong C và C ++?

Trong C ++, một con trỏ null có thể được định nghĩa bởi một hằng con trỏ null là một biểu thức hằng số nguyên với giá trị 0, như -

int * p =0;

Nhưng trong c, một con trỏ null có thể được định nghĩa bởi một hằng con trỏ null là một biểu thức hằng số nguyên với giá trị 0 hoặc một biểu thức như vậy được ép kiểu void *, như -

Int * p =0;;

Hoặc

int * p =(void *) 0;

Trong C ++ 11, từ khóa “nullptr” được sử dụng để đại diện cho nullpointer.

int * ptr =nullptr;

Trong C

Ví dụ

#include <stdio.h>
int main() {
   int *p= NULL; //initialize the pointer as null.
   printf("The value of pointer is %u",p);
   return 0;
}

Đầu ra

The value of pointer is 0.

Trong C ++

Ví dụ

#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;
}

Đầu ra

The value of pointer is 0.