Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Нулевые строки и нулевые символы



В программировании на С нуль имеет много значений, и важно понимать различные применения нуля.

Нулевой символ имеет нулевое значение ASCII и обычно представляется программами как макроопределе­ние NULL, определенное в файле STDIO.H и других заголовочных файлах. NULL может иметь тип int или long в зависимости от модели памяти.

Строка с завершающим нулем представляет собой массив с нулевым символом после последнего значащего символа в строке. Все строки должны иметь одну дополнительную позицию для завершающего нулевого символа.

Нулевая строка - это строка, которая начинается с нулевого символа. Длина нулевой строки равна нулю, но ее размер в памяти может занимать больше одного байта. Нулевые строки обычно представляют пустые строки в текстовых редакторах и пустые поля в окнах ввода баз данных. Литеральная нулевая строка за­писывается как "".

Нулевой указатель на строку не адресует никаких символьных данных - он не является эквивалентом ну­левой (с нулевой длиной) строки. Чтобы создать нулевой указатель на строку, присвойте указателю мак­роопределение NULL. Чтобы создать нулевую строку, присвойте NULL первому байту строки.

Рис. 6.2 иллюстрирует важный факт: содержимое строки может занимать только часть общего объема памя­ти, выделенного строке. Строка может иметь от 0 до п -1 символов, где n - объявленная длина. Верхняя строка на рисунке нулевая - она не содержит значащих символов, только завершающий нуль в своем первом байте. Все остальные байты в этой строке не используются. Средняя строка на рисунке целиком заполнена символами. В этой строке не пропадает зря ни одного байта. Нижняя строка представляет самый типичный случай - сим­вольный массив заполнен частично, и несколько байтов после завершающего нуля не используются.

Рис.6.2 Типичные строки в памяти

Во время своего существования строка занимает фиксированный объем памяти, но ее символьное содержи­мое может изменяться по длине. Строковые переменные не могут расширяться и сужаться, и, если строка не заполнена, часть ее памяти тратится напрасно. В следующих разделах вы узнаете, как минимизировать эти накладные расходы.





Дата публикования: 2015-01-23; Прочитано: 1430 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...