Строковые литералы, известные также как строковые константы, образуют специальную категорию констант, используемых для работы с фиксированными последовательностями символов. Строковый литерал есть тип данных array of char и класс памяти static, записываемый как последовательность произвольного количества символов, заключенных в двойные кавычки:
"This is literally a string!" /* "Это строковый литерал!" */
Нулевая (пустая) строка записывается как "". Если строковые литералы имеют большое количество символов, не умещающихся на одной строке, то можно с помощью символа наклонной черты влево () переносить символы строкового литерала на следующую строку, т.е. выполнить «склеивание» этих строк. В этом случае символ наклонной черты влево (обратный слеш) и символ новой строки (Enter) пpи синтаксическом анализе отбрасываются, что позволяет рассматривать две части строкового литерала как единое целое, Например:
"Borland
International"
будет рассматриваться, как
"Borland International".
Символы внутри двойных кавычек могут включать управляющие последовательности. Например,
"tt"Имя \tАдресnn
распечатается функцией printf следующим образом:
"Имя " Адрес
Слову "Имя" будет предшествовать два символа табуляции; слову "Адрес" предшествует один символ табуляции. Строка заканчивается двумя символами новой строки. Последовательность " обеспечивает вывод внутренних кавычек.
Строковый литерал хранится в памяти как заданная последовательность символов, плюс конечный пустой символ (‘’), означающий конец строки. Нулевая строка хранится в виде одного символа ‘’.
Не следует путать ‘’, ‘0’ и "0". Первое – символьный литерал, соответствующий символу с кодом 0. Второе – такой же литерал, но обозначающий цифру 0, ее код в ASCII-кодировке 48. Третий – это строковый литерал, содержащий два символа, цифру 0 и нуль-терминатор ‘’.
На фазе лексического анализа соседние строковые литералы, разделенные только пробелами, конкатенируются (объединяются).
Для расширения строковой константы за границы строки в качестве символа продолжения можно использовать обратную наклонную черту ():
put("В действительности
это однострочная строка символов");