Во многих языках программирования нулевой символ используется для обозначения окончания строки.

Это так называемые "Си-строки" (название происходит от языка Си, где используются такие строки).
Другие названия: null-терминированная строка или ASCIZ-строка.

При таком подходе, код работающий со строкой изначально не знает её длинны и обрабатывает символы последовательно, пока не встретит нулевой.

[[[code:c
/* Вывод строки */
i = 0; // начать с начала строки
while (s[i] != 0) { // работать, пока текущий символ не \0
    echo s[i]; // вывести очередной символ
    i++; // перейти к следующему
}
]]]

Из минусов такого подхода:

[*] Заранее неизвестна длина строки
[*] Строка не может содержать непосредственно символ \0
[*] Если забыть поставить в конце \0 или случайно удалить его, код пойдёт работать дальше с непредвиденными последствиями.

В случае использования многобайтовых кодировок фиксированной ширины, нулевой символ также должен занимать положенное количество байт.
Например, в UCS-2: два нулевых байта.

Альтернативный подход при организации строк - хранить длину строки в отдельной переменной.

При выводе Unicode-строки нулевой символ не имеет никакого представления и никого влияния на поток вывода.
Некоторые программы и устройства могут отображать его в виде пробела, но это не совсем корректно.

Однако, полное игнорирование данного символа иногда может приводить к неприятным последствиями.
Например, некоторые старые браузеры расценивали строку типа [code <\0script>] как [code <script>], что позволяло злоумышленникам внедрять XSS на чужие сайты (авторы которых при обработке данных не предусмотрели такой нюанс).

Для вставки данного символа во многих языках программирования имеется escape-последовательность [code \0].

Это один из восьми управляющих символов, чьё наличие требует стандарт POSIX.

