Я пробовал разные способы объявить строку в C для подготовки к экзамену. Мы знаем, что строка в C является символьным массивом с '\0'
в конце. Затем я обнаружил, что даже если я объявляю массив из 5 символов и помещаю в него 5 символов, таких как «abcde», он принимается. Тогда где хранится нулевой символ?
Я объявил строки следующим образом
char str[] = {'a','b','c','d','e'};
char str2[] = "abcde";
char str3[5] = "abcde";
Теперь, в третьем случае, я выделяю 5 байт пространства, и у меня есть ровно 5 символов в массиве, тогда если строка должна иметь нулевой символ в конце, где она хранится? Или дело в том, что ноль не добавлен?
А как насчет 1-го и 2-го случаев, там добавлены нулевые значения?
strlen()
возвращает 5 во всех 3 случаях.