Почему *strptr = 0
обрезает строку? (C)Почему * StrPtr = 0 усечения строка? (C)
Почему значение ASCII 30 0 становятся равными 0 в нуль?
Здесь я запутался с номером 0, строками 0 и строкой termianl 0.
ваши объяснения будут оценены.
Почему *strptr = 0
обрезает строку? (C)Почему * StrPtr = 0 усечения строка? (C)
Почему значение ASCII 30 0 становятся равными 0 в нуль?
Здесь я запутался с номером 0, строками 0 и строкой termianl 0.
ваши объяснения будут оценены.
Точнее, есть три лексические элементы, которые содержат нулевой символ: 0
(без кавычек), '0'
(цитируется, как правило (но не всегда) равна 48
или 0x30
некотируемого) и '\0'
(равной 0
, но по своему характеру обозначения).
Вопрос заключается в двух разных значениях ... '0' != '\0'
. Забудьте о 30, 48 и т.д. Просто помните '0'
и '\0'
разные характеры, и '\0'
является строка терминатор, который имеет значение 0
...
Я думаю, что вы имели в виду использовать '0'
(акцент на кавычки) ,
Все стандартные библиотечные строковые процедуры обрабатывают символ '\0'
в качестве ограничителя строк, поэтому, если вы поместите его в начале строки, все они не видят обработки данных, потому что первый символ является терминатором, поэтому строка пуста. И да, по стандарту '\0'
- символ, который имеет значение 0
. В результате: '\0' == 0
- это правда.
'0 == '\ 0'',' 0x30 ==' 0''. – kay
Пахнет, как будто вы хотели написать '* strptr = '0''? – mvidelgauz
Я путаюсь здесь, 1 + 1 = 2, значение ascii 1 есть? –