В C строки заканчиваются символом со значением ноль (0). Это можно написать так:
char zero = 0;
но это не работает внутри строк. В строковых литералах используется специальный синтаксис, где обратная косая черта работает как вводная последовательность и сопровождается различными вещами.
Одной из таких последовательностей является «обратный слеш ноль», который просто означает символ со значением ноль. Таким образом, вы можете написать что-то вроде этого:
char hard[] = "this\0has embedded\0zero\0characters";
В другой последовательности используется обратная косая черта, за которой следует буква 'x'
и одна или две шестнадцатеричные цифры для обозначения символа с указанным кодом. Используя этот синтаксис, вы можете записать нулевой байт как, например, '\x0'
.
РЕДАКТИРОВАТЬ : Перечитывая вопрос, в восьмой базе также есть поддержка таких констант, то есть восьмеричная. Они используют обратную косую черту, за которой следует цифра ноль, так же, как и восьмеричные литеральные целочисленные константы. '\00'
, таким образом, является синонимом '\0'
.
Это иногда полезно, когда вам нужно создать строку, содержащую непечатаемые символы или специальные управляющие символы.
Существует также набор односимвольных «именованных» специальных символов, таких как '\n'
для новой строки, '\t'
для TAB и т. Д.