Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
В программировании на С нуль имеет много значений, и важно понимать различные применения нуля.
Нулевой символ имеет нулевое значение ASCII и обычно представляется программами как макроопределение NULL, определенное в файле STDIO.H и других заголовочных файлах. NULL может иметь тип int или long в зависимости от модели памяти.
Строка с завершающим нулем представляет собой массив с нулевым символом после последнего значащего символа в строке. Все строки должны иметь одну дополнительную позицию для завершающего нулевого символа.
Нулевая строка - это строка, которая начинается с нулевого символа. Длина нулевой строки равна нулю, но ее размер в памяти может занимать больше одного байта. Нулевые строки обычно представляют пустые строки в текстовых редакторах и пустые поля в окнах ввода баз данных. Литеральная нулевая строка записывается как "".
Нулевой указатель на строку не адресует никаких символьных данных - он не является эквивалентом нулевой (с нулевой длиной) строки. Чтобы создать нулевой указатель на строку, присвойте указателю макроопределение NULL. Чтобы создать нулевую строку, присвойте NULL первому байту строки.
Рис. 6.2 иллюстрирует важный факт: содержимое строки может занимать только часть общего объема памяти, выделенного строке. Строка может иметь от 0 до п -1 символов, где n - объявленная длина. Верхняя строка на рисунке нулевая - она не содержит значащих символов, только завершающий нуль в своем первом байте. Все остальные байты в этой строке не используются. Средняя строка на рисунке целиком заполнена символами. В этой строке не пропадает зря ни одного байта. Нижняя строка представляет самый типичный случай - символьный массив заполнен частично, и несколько байтов после завершающего нуля не используются.
Рис.6.2 Типичные строки в памяти
Во время своего существования строка занимает фиксированный объем памяти, но ее символьное содержимое может изменяться по длине. Строковые переменные не могут расширяться и сужаться, и, если строка не заполнена, часть ее памяти тратится напрасно. В следующих разделах вы узнаете, как минимизировать эти накладные расходы.
Дата публикования: 2015-01-23; Прочитано: 1430 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!