C 언어는 아무것도 가리키고 있지 않다, 또는 할당되어있지 않다는 의미를 가지는 null pointer의 개념을 정의하고 있습니다. 그 값이 바로 0입니다. NULL은 이 값을 숫자 0과 헷갈리지 말고 쓰라는 의미에서 (void *)0로 define되어 있습니다. 그러므로 NULL을 null pointer의 역할로 사용할 수 있습니다.
'\0'은 NULL과 type이 다르다고 생각하면 됩니다. 이건 pointer가 아니고 character이며, 문자열의 끝을 나타내는 역할을 하고 있고, 아시다시피 우리는 길이가 지정되어있지 않고 '\0' 문자가 문자열의 끝임을 알려주는 문자열을 null terminated string이라고 부릅니다.
NULL & '\0'?
C 언어는 아무것도 가리키고 있지 않다, 또는 할당되어있지 않다는 의미를 가지는 null pointer의 개념을 정의하고 있습니다. 그 값이 바로 0입니다. NULL은 이 값을 숫자 0과 헷갈리지 말고 쓰라는 의미에서 (void *)0로 define되어 있습니다. 그러므로 NULL을 null pointer의 역할로 사용할 수 있습니다.
'\0'은 NULL과 type이 다르다고 생각하면 됩니다. 이건 pointer가 아니고 character이며, 문자열의 끝을 나타내는 역할을 하고 있고, 아시다시피 우리는 길이가 지정되어있지 않고 '\0' 문자가 문자열의 끝임을 알려주는 문자열을 null terminated string이라고 부릅니다.
C나 C++이나 같을 것으로 생각되옵니다..
추가~
NULL은 null pointer를 가르키는데
C++에서의 표준은 NULL 대신 0을 쓰는거라더군요
char *str;
str = NULL; /* C style */
str = 0; /* C++ style */
그리고 char 문자열에서 '\0' 문자는 ascii code 0입니다.
따라서 문자열의 특정한곳에 숫자 0을 대입해도 null termainator의
역할을 하는것이지요
01234
0123
01
댓글 달기