NULL과 '\0'은 완전히 같은건가요..?

sadrove의 이미지

C/C++에서 문자열의 끝을 나타내는 NULL과 '\0'은 완전히 같은건가요..?

goodfiend의 이미지

NULL문자가 아스키코드에서 0 입니다.

sadrove의 이미지

넵..감사합니다..^^

byung82의 이미지

보통적으로 NULL Ascii 에서 0로 인식하지만 C/C++에서 NULL 꼭 0이 아닐수 있습니다.
플롯폼에 따라서 NULL 1 도 될수 있습니다 ^^;

NULL 체크 하실때는 될수 있으면 NULL라고 정의 해주시 바랍니다 ^^;

그럼

MasterQ의 이미지

purewell의 이미지

비스꾸무레 하면서도 살포시 다르지요.

NULL은 주소로서 0으로 쓰이는 때가 많으니까요.

int* k=NULL;

_____________________________
언제나 맑고픈 샘이가...
http://purewell.biz

eungkyu의 이미지

널문자와 NULL은 다릅니다 :(

전자는 char로 '\0'이고, 후자는 주소로서 쓰이죠. NULL

내부적으로 '\0'도 0으로, NULL도 0으로 쓰이지만 (대신 주소), 리턴값이 NULL인지 체크하기 위해
if (func() == '\0')
이렇게 쓰지는 않자나요 :? 물론 문자열 적절한 곳에 '\0'을 추가하기 위해
buf[35] = NULL;
이렇게 쓰지도 않지요...

'\0'은 string이 끝나는 위치를 표시할 때 쓰는 것이고, NULL은 의미없는 주소값을 표시할 때 쓰는 것입니다.