Обратный слеш нулевой разделитель '\ 0' - PullRequest
15 голосов
/ 17 июня 2011

Я видел '\0' для использования в качестве разделителя в смешанных двоичных файлах (строки UTF8 + двоичные данные).Может ли кто-нибудь объяснить, что означает '\0', или указать хорошее место для учебы?

Ответы [ 3 ]

19 голосов
/ 17 июня 2011

Это нулевой символ; больше информации в этой википедии статья .

11 голосов
/ 17 июня 2011

Двухсимвольное представление \0 используется в исходном коде C для представления символа NUL, который является (единственным) символом со значением ASCII 0.

Символ NUL используется в символьных строках в стиле C, чтобы указать, где находится конец строки. Например, строка "Hello" кодируется как шестнадцатеричные байты:

48 65 6c 6c 6f 00

В этом случае компилятор C автоматически добавляет байт 00 в конец любой строки в двойных кавычках. Если вы записали константу как "Hello\0", то компилятор C сгенерирует:

48 65 6c 6c 6f 00 00
7 голосов
/ 17 июня 2011

\0 - сокращение от \000, которое является восьмеричным экранированием символов. В общем, вы можете сократить любой восьмеричный код, за которым не следует восьмеричная цифра. Это вытекает из исходных escape-последовательностей C (\n \r \t \f \v \b \000, где последнее является символьным значением в восьмеричной нотации; ANSI добавило их, а \v в наши дни встречается довольно редко, и многие другие современные языки не реализуют его).

...