Книга: Язык Си - руководство для начинающих
Строковые константы
Строковые константы
Всякий раз, когда компилятор встречается с чем-то, заключенным в двойные кавычки, он определяет это как строковую константу. Символы, заключенные в кавычки, плюс завершающий символ '', записываются в последовательные ячейки памяти. Компилятор подсчитывает количество символов, поскольку ему нужно знать размер памяти, необходимой для запоминания строки. Наша программа использует несколько таких строковых констант, чаще всего в качестве аргументов функций printf( ) и puts( ). Заметим также, что мы можем определять строковые константы при помощи директивы #define.
Если вы хотите включить в строку символ двойной кавычки, ему должен предшествовать символ обратной дробной черты:
рrintf(""Беги, Спот, беги!" - сказал Дик.n");
В результате работы этого оператора будет напечатана строка:
"Беги, Cпот, беги! - "сказал Дик.
Cтроковые константы размещаются в статической памяти. Вся фраза в кавычках является указателем на место в памяти, где записана строка. Это аналогично использованию имени массива, служащего указателем на расположение массива. Если это действительно так, то как выглядит оператор, который выводит строку?
/* строки в качестве указателей */
main( )
{
printf("%s, %u, %c n", "We", "love", *"figs");
Итак, формат %s выводит строку We. Формат %u выводит целое без знака. Если слово "love" является указателем, то выдается его значение, являющееся адресом первого символа строки. Наконец, *"figs" должно выдать значение, на которое ссылается адрес, т. е. первый символ строки "figs". Произойдет ли это на самом деле? Да, мы получим следующий текст:
We, 34, f
Ну, вот! Давайте теперь вернемся к строкам, находящимся в символьных массивах.
- Константы строковых типов
- Символьные константы
- Строковые функции
- 1.2.3. Константы, переменные и типы
- Строковые и символьные функции
- Константы
- Константы гудвилла: стиль, паблисити, репутация, имидж и бренд фирмы
- Лекция 18. Глобальные объекты и константы
- 11.2. Константы и контекстные переменные
- Манифестные константы