Книга: Язык Си - руководство для начинающих
Массивы символьных строк и их инициализация
Массивы символьных строк и их инициализация
При определении массива символьных строк необходимо сообщить компилятору требуемый размер памяти. Один из способов сделать это - инициализировать массив при помощи строковой константы. Так как автоматические массивы нельзя инициализировать, необходимо для этого использовать статические или внешние массивы. Например, оператор
char m1[ ] = "Только ограничьтесь одной строкой.";
инициализировал внешний (по умолчанию) массив m1 для указанной строки. Этот вид инициализации является краткой формой стандартной инициализации массива
char m1[ ] = {'Т', 'о', 'л', 'ь', 'к', 'о', ' ',
'о', 'г', 'р', 'а', 'н', 'и', 'ч',
'ь', 'т', 'e', 'с', 'ь', ' ', 'о',
'д', 'н', 'о', 'й', ' ', 'с', 'т',
'р' 'о', 'к', 'о', 'й', ' .', ''};
(Обратите внимание на замыкающий нуль-символ. Без него мы имеем массив символов, а не строку.) Для той и другой формы (а мы рекомендуем первую) компилятор подсчитывает символы и таким образом получает размер массива.
Как и для других массивов, имя m1 является указателем на первый элемент массива:
m1 == &m1[0], *m1 == 'Т', и *(m1 + l) == m1[1] == 'о',
Действительно, мы можем использовать указатель для создания строки. Например:
char *m3 = " n Достаточно обо мне - как вас зовут?";
Это почти то же самое, что и
static char m3[ ] = "n Достаточно обо мне - как вас зовут?" ;
Оба описания говорят об одном: m3 является указателем строки со словами " Как вас зовут?" . В том и другом случае сама строка определяет размер памяти, необходимой для ее размещения. Однако вид их не идентичен.
- Массивы символьных строк
- Инструмент командной строки gbak
- Инструмент командной строки gfix
- Как выделить строку, столбец и ячейки
- Удобная операция объединения строк
- Работа со строками
- Динамические массивы
- Преобразование строки в целое: stoi( )
- 9.1 Массивы RAID
- ПРИМЕР: СОРТИРОВКА СТРОК
- Запросы, подсчитывающие строки
- 2.9. Форматирование строк