Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Tại sao con trỏ NULL khác nhau giữa C và C++?

C++: Con trỏ NULL là hằng số nguyên 0: int* p = 0;. C++11 có nullptr: int* ptr = nullptr;

C: Con trỏ NULL là hằng số nguyên 0 hoặc ép kiểu void*: int* p = 0; hoặc int* p = (void*)0;

Ví dụ C

#include <stdio.h>
int main() {
    int *p = NULL;
    printf("Gia tri con tro: %p", (void*)p);
    return 0;
}

Kết quả: 0 (hoặc 0x0)

Ví dụ C++

#include <iostream>
using namespace std;
int main() {
    int *p = NULL;
    cout << "Gia tri con tro: " << p;
    return 0;
}

Kết quả: 0