Стандарт C99
требует, чтобы «байт со всеми битами, установленными в 0, называемый null character
, должен существовать в основном наборе символов выполнения, он используется для завершения символьной строки». (5.2.1.2) Затем он перечислит 99 других символов, которые должны быть в наборе выполнения. Может ли использоваться набор символов, в котором нулевой символ является одним из этих 99 символов? В частности, разрешено ли это '0' == '\0'
?Может ли нулевой символ использоваться для представления нулевого символа?
Edit: Все указывает на то, что в ASCII, '0'
является 0x30
. Это верно, но стандарт не предусматривает использование ASCII.
'0' имеет значение ascii 48 –
, почему эти downvotes? это законный вопрос. –
Примечание: _if_ ''0' == '\ 0'', тогда' '1' == '\ 1', '2' == '\ 2'' до' 9' 'должно быть верно также как «десятичные цифры должны быть на один больше, чем значение предыдущего». Однако '' 0 '==' \ 0 '' определенно имеет другие проблемы. Интересный вопрос из коробки - возможно, слишком далеко. – chux