c 표준에는 null pointer의 값이 0이라고 명시되어있지 않고(대부분의 환경에선 맞지만)

실제로 null pointer가 0이 아닌 환경도 세상 어딘가에 존재하긴 한다

그런 동네에서조차 int *a =0; 같은 코드는 정상 작동하는데

컴파일러가 0 리터럴을 '알아서' null pointer에 해당하는 무언가로 바꿔주기 때문이다

근데 int a = 0; int *b = (int*)a; 이딴짓은 당연히 안먹힌다 ㅎ

이게 너무 병신같다고 생각했는지  C++에서는 nullptr이 생겼다

0 리터럴이랑 템플릿/오버로딩 따위랑 잘못 엮이면 불지옥을 볼 수 있기 때문에

c++에선 NULL대신 nullptr을 애용하도록 합시다