Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Символьные строки представляют один из наиболее полезных и важных типов данных языка Си. Символьная строка является массивом типа char, который заканчивается нуль – символом (‘\0’). Компилятор автоматически вставляет его после последнего символа строки. При резервировании памяти под строку программист должен предусмотреть один байт для признака конца строки. Например, строка «СТРОКА» будет иметь представление в памяти, показанное на рис.1.
____________________
| С | Т | Р | О | К | А| \ 0 |
____________________
Рис.1.
Всякий раз, когда компилятор встречается с чем-то, заключенным в двойные кавычки, он определяет это как строковою константу. Символы, заключенные в кавычки, плюс завершающий символ ‘\0’, записываются в последовательные ячейки памяти. Строковые константы размещаются в статической памяти.
При определении массива символьных строк необходимо сообщить компилятору требуемый размер памяти. Один из способов сделать это – инициализировать массив пр помощи строковой константы. Так как автоматические массивы нельзя инициализировать, необходимо для этого использовать статические или внешние массивы.
Например,
Static char stroka [ ] = {‘с’, ‘т’, ‘р’, ‘о’, ‘к’, ‘а’, ‘\0’};
При такой инициализации обязательно нужно включить признак конца строки. Существует другая, более короткая форма записи
Static char stroka [ ] = “строка”;
Есть и третий способ инициализации с помощью указателей. При этом, как и в двух выше описанных случаях, не нужно заранее выделять память для строки. Компилятор по внешнему виду строки определит необходимое количество байтов, в том числе один байт на символ конца строки. Например:
char *str;
str = ” строка”;
Это же самое можно записать так:
char *str = “строка”;
Иной путь выделения памяти заключается в явном ее задании. Во внешнем описании мы могли бы указать;
char m1[13] = “одна_строка”;
В этом случае все неиспользованные элементы автоматически инициализируются нуль–символом, как показано на рис.2.
----------------------------------------------
| о | д | н | а | с | т | р | о | к | а | \0 | \0 |
----------------------------------------------
Рис.2.
Дата публикования: 2014-11-28; Прочитано: 251 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!