Как убрать \0 у строковых констант
2)char s[] = "123" // тоже "123\0" хотя тут можно
char s[]={'1','2','3'};
Можно ли убрать из строк-констант завершающий \0 в определении?
2)char s[] = "123" // тоже "123\0" хотя тут можно
char s[]={'1','2','3'};
я считаю что только так:
в остальных случаях ноль добавиться автоматически (сам/а об этом и написал/а)
Можно ли убрать из строк-констант завершающий \0 в определении?
2)char s[] = "123" // тоже "123\0" хотя тут можно
char s[]={'1','2','3'};
если кто не знает, то символ с кодом 0 в си обозначает конец строки, если ты его уберешь, то не факт, что при выполнении программы у тебя вместо "123" вылезет "123вфаыфва" или что-нибудь вроде того :))
если кто не знает, то символ с кодом 0 в си обозначает конец строки, если ты его уберешь, то не факт, что при выполнении программы у тебя вместо "123" вылезет "123вфаыфва" или что-нибудь вроде того :))
факт что все будет впорядке, если правильно обрабатывать код
факт что все будет впорядке, если правильно обрабатывать код
не в этом суть важного: с самого начала говорилось о строках (" #define s "123" "). Если правильно обрабатывать код, все конечно будет в порядке, но зачем использовать строку, если сами принципы ее использования не устраивают. К тому же, не понятно чем нулевой символ помешал, хотелось бы цель этих исканий узнать, ну или примерчик не устроившего кода (:
К тому же, не понятно чем нулевой символ помешал, хотелось бы цель этих исканий узнать, ну или примерчик не устроившего кода (:
во-во, я о том-же. но автор почему-то молчит насчёт того зачем ему это понадобилось.
во-во, я о том-же. но автор почему-то молчит насчёт того зачем ему это понадобилось.
складывается такое впечатление, что автор сам уже давно забил на эту дискуссию :)
не ставит '\0' попробуй, испльзуй её правилно ;)
Можно ли убрать из строк-констант завершающий \0 в определении?
2)char s[] = "123" // тоже "123\0" хотя тут можно
char s[]={'1','2','3'};
ну а на крайняк можешь просто писать так char s[3]="123".... хотя, по прежнему не понимаю зачем это тебе надо
ну а на крайняк можешь просто писать так char s[3]="123".... хотя, по прежнему не понимаю зачем это тебе надо
компилятор не пропустит ошибку выдаст, или вообще размер не писать или 4
компилятор не пропустит ошибку выдаст, или вообще размер не писать или 4
ну, это смотря какой компилятор использовать - задавать размер массива руками, по-моему еще никто не запрещал... зачем размер на 4 устанавливать? ведь смысл, в том, чтобы было только 3(!) символа, а не четыре
ну, это смотря какой компилятор использовать - задавать размер массива руками, по-моему еще никто не запрещал... зачем размер на 4 устанавливать? ведь смысл, в том, чтобы было только 3(!) символа, а не четыре
я пользуюсь студией Microsoft Visual Studio 6.0, в ней номер не пройдет, проверено. 4 - потомучто по умолчанию и без споров :) :
Если не тяжело провер у себя и расскажи чем пользуешься
я пользуюсь студией Microsoft Visual Studio 6.0, в ней номер не пройдет, проверено. 4 - потомучто по умолчанию и без споров :) :
Если не тяжело провер у себя и расскажи чем пользуешься
Borland C++ Builder 6.0 спакойно скомпилировал, а вот Blooshed Dev-C++ 4.9.9.2 сильно ругался :)