Я новичок в программировании на C, поэтому не стесняйтесь поправлять меня, я настаиваю. Мое основное понимание строк в C заключается в том, что когда мы инициализируем строку, нулевой символ автоматически назначается в конце строки, и нулевой символ не может быть прочитан или записан, но используется только для внутреннего использования.
Поэтому, когда я создаю строку размера 4 как char str[3]
и назначаю ей слово, скажем, «КРАСНЫЙ», и печатаю его с помощью функции puts или printf("%s",str)
, я получаю необычный вывод, напечатанный как RED(SMIILEY FACE)
Затем я снова уменьшаю размер строки до char str[2]
и назначаю ей RED, а затем компилирую ее, и снова получаю вывод с указанием RE(Smiley face)
Если кто-то может объяснить это мне, я буду благодарен. Размещение кода C ниже
int main()
{
char s1[3]="RED";
char s2[]="RED";
puts(s1);
puts(s2);
printf("%s",s1);
return 0;
}