Во многих языках программирования нулевой символ используется для обозначения окончания строки. Это так называемые "Си-строки" (название происходит от языка Си, где используются такие строки). Другие названия: null-терминированная строка или ASCIZ-строка. При таком подходе, код, работающий со строкой, изначально не знает её длины и обрабатывает символы последовательно, пока не встретит нулевой. [[[code:c /* Вывод строки */ i = 0; // начать с начала строки while (s[i] != 0) { // работать, пока текущий символ не \0 echo s[i]; // вывести очередной символ i++; // перейти к следующему } ]]] Из минусов такого подхода: [*] Заранее неизвестна длина строки [*] Строка не может содержать непосредственно символ \0 [*] Если забыть поставить в конце \0 или случайно удалить его, код пойдёт работать дальше с непредвиденными последствиями. В случае использования многобайтовых кодировок фиксированной ширины, нулевой символ также должен занимать положенное количество байт. Например, в UCS-2: два нулевых байта. Альтернативный подход при организации строк - хранить длину строки в отдельной переменной. При выводе Unicode-строки нулевой символ не имеет никакого представления и никого влияния на поток вывода. Некоторые программы и устройства могут отображать его в виде пробела, но это не совсем корректно. Однако, полное игнорирование данного символа иногда может приводить к неприятным последствиями. Например, некоторые старые браузеры расценивали строку типа [code <\0script>] как [code