Для следующей строки компилятор C создает массив элементов размера 10 char
и размещает первые 9 символов, добавляя строку \0
разделитель в самый конец.
char *a = "my string";
Учитывая следующую строку; C компилятор создает массив элементов размера 9 char
и размещает символы. Разделитель строк в самом конце не добавляется. Если в 10-м байте (байт номер 9) окажется нулевое значение, это будет только случайно.
char b[] = { 'm', 'y', ' ', 's', 't', 'r', 'i', 'n', 'g' };
Оператор « массив символов должен иметь завершение нулем, если он создается с использованием {}"означает, что если вы хотите иметь возможность использовать этот массив символов в качестве строки (например, чтобы иметь возможность использовать его в printf
), то вам следует добавить символ завершения строки, себе, вроде;
char b[] = { 'm', 'y', ' ', 's', 't', 'r', 'i', 'n', 'g', '\0' };