Files
symbl-data/loc/ru/symbols-desc/0000.axyml
2023-03-29 19:45:31 +04:00

40 lines
4.8 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Нулевой символ, также известный как Пустой символ, был разработан для использования в компьютерных терминалах, принтерах, системах обработки текста и телекоммуникационном оборудовании, обозначая пустую или недействительную позицию в потоке данных.
Это самый первый символ Юникода и ASCII, занимающий нулевую позицию. Символ Null имеет ряд применений, таких как обозначение конца строк или блоков данных, заполнение пространства между элементами данных, предотвращение обработки данных после определенной точки и многое другое. В контексте программирования и обработки текстовых данных, нулевой символ может использоваться как маркер конца строки или массива символов, особенно в языках программирования, таких как C и C++. Это так называемые C-строки (читается «Си-строки», название происходит от языка Си, где используются такие строки), другие названия: Null-терминированная строка или ASCIZ-строка. При таком подходе, код, работающий со строкой, изначально не знает её длины и обрабатывает символы последовательно, пока не встретит нулевой.
[[[code:c
/* Вывод строки */
i = 0; // начать с начала строки
while (s[i] != 0) { // работать, пока текущий символ не \0
echo s[i]; // вывести очередной символ
i++; // перейти к следующему
}
]]]
Из минусов такого подхода:
[*] Заранее неизвестна длина строки;
[*] Строка не может содержать непосредственно символ \0;
[*] Если забыть поставить в конце \0 или случайно удалить его, код пойдёт работать дальше с непредвиденными последствиями.
В случае использования многобайтовых кодировок фиксированной ширины, нулевой символ также должен занимать положенное количество байт. Например, в UCS-2 — два нулевых байта. Альтернативный подход при организации строк — хранить длину строки в отдельной переменной.
Однако, полное игнорирование данного символа иногда может приводить к неприятным последствиями.
Например, некоторые старые браузеры расценивали строку типа [code <\0script>] как [code <script>], что позволяло злоумышленникам внедрять XSS на чужие сайты (авторы которых при обработке данных не предусмотрели такой нюанс).
Для вставки данного символа во многих языках программирования имеется Escape-последовательность [code \0].
Как и остальные управляющие символы, этот символ не имеет визуального представления и не занимает места на экране или в печати. В разделе [BLOCK:control-pictures] есть отдельный символ, представляющий графическое изображение нулевого символа в виде сокращения NUL — [U:2400].
Escape-последовательность: [code \0].
Символ является одним из восьми управляющих символов, обязательного наличия которых требует стандарт POSIX:
[*] [code \0] [U:0000] [U:0000 *#];
[*] [code \a] [U:0007] [U:0007 *#];
[*] [code \b] [U:0008] [U:0008 *#];
[*] [code \t] [U:0009] [U:0009 *#];
[*] [code \n] [U:000A] [U:000A *#];
[*] [code \v] [U:000B] [U:000B *#];
[*] [code \f] [U:000C] [U:000C *#];
[*] [code \r] [U:000D] [U:000D *#].