10 ответов
 
Вопрос №40634
 
 
 
 
Категории

 

Что такое нулевой символ?

Волшебство · больше 5 лет назад · 3 ответа
 

Хороший вопрос Ф топку
-1
2
Ответы
parpus · больше 5 лет назад

NULL в языках программирования Си и C++ — макрос, объявленный в заголовочном файле stddef.h (и других заголовочных файлах). Значением этого макроса является зависящая от реализации константа нулевого указателя (англ. null pointer constant). Константа нулевого указателя — это целочисленное константное выражение со значением 0, или (только в Си) такое же выражение, но приведённое к типу void *. Константа нулевого указателя, приведённая к любому типу указателей, является нулевым указателем. Гарантируется, что нулевой указатель не равен указателю на любой объект (в широком смысле слова, любые данные) или функцию. Гарантируется, что любые два нулевых указателя равны между собой. Разыменовывание нулевого указателя является операцией с неопределённым поведением.
Иначе говоря, реализация предоставляет специальное значение — константу нулевого указателя, которую можно присвоить любому указателю и такой указатель при сравнении не будет равен любому «корректному» указателю. То есть, можно считать, что нулевой указатель не содержит корректный адрес в памяти.

 
Источник: Википедия
 
 
Ответ выбран голосованием
Колобок · больше 5 лет назад

Нулевой символ -- это символ с кодом 0. Он нужен для распознавания конца строки в участке памяти. Допустим вам нужно выделить кусок памяти, где будет храниться набор символов. Когда вы запросили память нужного вам размера, изначально она заполнена мусором -- тем, что там хранилось когда-то раньше. Этот мусор является ничем другим, как набором цифр. Символы в памяти хранятся тоже в виде набора цифр -- их кодов.
Пусть вы запросили память для 10 символов, а записали пока только три. Тогда как вам в будущем, при чтении этого куска памяти, определить где заканчиваются символы, а где начинается мусор, если и те и те просто цифры? Хранить длину каждой такой строки неудобно. Поэтому и используется нулевой символ для ограничения строки. В конце каждой строки в памяти вы записываете нулевой символ, и в дальнейшем, если при разборе строки встретится в этой последовательности символов нулевой символ, то это значит, что после него идет мусор, а не символы.

 
 
 
X · больше 5 лет назад

Нуль-Абсолют или вечность!

 
 
 
 
 
Ссылка на этот вопрос
 
Поискать ответ на вопрос: ответы@mail.ru, otvety@google.ru, Яндекс.Ответы
 
Читать новые вопросы в: LiveJournal, Livinternet, Google Reader
 
Этот вопрос посмотрели 782 раза, в среднем 2 просмотра в неделю (0.38)
 
 
 
 
 
 
Адрес друга:
 
 
 
 
 
 
 
 
 
 
 

© vorum.ru — вопросы и ответы, 2006–2016
Пишите нам на in@vorum.ru

Администрация сервера не гарантирует точность и достоверность размещаемых пользователями материалов, а также не несет ответственности ни за какие задержки, сбои, удаление или несохранность какой-либо пользовательской информации.

Цифры не для всех: 159

 
 
× Нравится наш сайт?
Нажмите кнопку «Мне нравится» (Like), чтобы присоединиться к нам на Facebook