[C] 0, NULL, '\0'(NUL)의 차이

younoah·2021년 1월 11일
0

[C]

목록 보기
5/5

정수에서 사용하는 0과 포인터에서 사용하는 NULL, 문자에서 사용하는 NUL('\0')은 의도적인 차이일뿐 물리적으로 0으로 동일하다.

의도를 명확하게 하기위해 코드를 작성할 때

정수형이면 0

포인터이면 NULL

문자(열)이면 '\0'

을 사용하자.

0

int nbr = 0;

  • 정수 0을 표시할 때 사용한다.

NULL

void *ptr = NULL;

  • 널포인터로써 (void*)0을 가리킨다.

  • 가리키는 주소가 없다라는 뜻이다.

  • 실제 메모리에서 0번째 메모리주소가 있다. 이 0번째 메모리주소를 가리키면 포인터가 아무것도 가르키지 않는다를 의미한다.

NUL('\0')

char c = '\0';

char *str = "abc\0"

  • NUL('\0')은 아스키코드에서 10진수로 0으로 매핑되어있다. 문자열에서 사용할때 숫자 0과 구분하기 위해 '\0'을 사용한다.

profile
console.log(noah(🍕 , 🍺)); // true

0개의 댓글