정수에서 사용하는 0과 포인터에서 사용하는 NULL, 문자에서 사용하는 NUL('\0')은 의도적인 차이일뿐 물리적으로 0으로 동일하다.
의도를 명확하게 하기위해 코드를 작성할 때
정수형이면
0
포인터이면
NULL
문자(열)이면
'\0'
을 사용하자.
int nbr = 0;
void *ptr = NULL;
널포인터로써 (void*)0을 가리킨다.
가리키는 주소가 없다라는 뜻이다.
실제 메모리에서 0번째 메모리주소가 있다. 이 0번째 메모리주소를 가리키면 포인터가 아무것도 가르키지 않는다를 의미한다.
char c = '\0';
char *str = "abc\0"