C언어에서\0에 대한 의미가 궁금합니다. ㅠㅠ

alkfjalfja의 이미지

코드를 보다 보면,

~~~ \0 혹은 ~~~'\0'로 표기된 코드들이 있는데,

뭘 의미하는지 설명 좀 부탁 드리겠습니다.

vivisection의 이미지

\0은 0x00 입니다
소켓통신할때 패킷의 끝을 알리는 용도로 쓰긴하는데, 데이터누락의 위험성이 있으므로 다른 방식으로 패킷의 끝을 정해서 사용해야 합니다

익명 사용자의 이미지

C언어에서 '\0' 은 기본적으로 특별한 의미가 아닙니다.

문자 상수 표현(character literal)에서 '\xxx' 는 8진수로 xxx 값을 갖는 문자(라고는 하지만 그냥 char형 정수)를 명시한 것입니다.

고로 '\0' 은 (char)00 을 의미합니다.

마찬가지로 16진수로 지정할 때는 '\x...'의 형태를 씁니다. 예를 들어 '\xFF'는 (char)0xFF 를 의미합니다.

C언어에서 문자열 표현의 표준으로 사용되는 null terminated string에서는 '\0'을 중요한 의미로 사용합니다.

널 문자(null character)라고 부르고, 이를 문자열의 끝을 나타내는데 이용합니다.

===

http://cafe.daum.net/codeinside

vivisection의 이미지

(char)00 은 무슨말씀이신지..?

익명 사용자의 이미지

00 은 8진수 0이라는 뜻이죠.

'\0'의 의미를 살려서 표현한 겁니다.