Вопрос: Я в растерянности. Гарантируется, что NULL равен 0, а нулевой указатель нет? Ответ: Термин "null" (нулевой) или "NULL" может не совсем обдуманно использоваться в нескольких смыслах:
Автор: Кодт .Дата: 16.01.03 Он представляется с помощью... Внутреннее (на стадии выполнения) представление нулевого указателя, которое может быть отлично от нуля и различаться для различных типов указателей. О внутреннем представлении нулевого указателя должны заботиться только создатели компилятора. Программистам на С это представление не известно, поскольку они используют... Синтаксическое соглашение для нулевых указателей, символ "0". Вместо него часто используют... Макрос NULL который с помощью #define определен как "0" или "(void *)0". Наконец, нас может запутать... Нулевой код ASCII (NUL), в котором все биты равны нулю, но который имеет мало общего с нулевым указателем, разве что названия похожи; и... "Нулевой стринг", или, что то же самое, пустой стринг (""). Термин "нулевой стринг" может приводить к путанице в С и, возможно, его следует избегать, так как пустой стринг включает символ '\0', но не нулевой указатель, и здесь мы уже идем по кругу... В этом документе фраза "нулевой указатель" (null прописными буквами) используется в смысле 1, символ "0" в смысле 3, а слово "NULL", записанное большими буквами, в смысле 4. |