Строковые константы литералов имеют время жизни всей программы, и массивы, в которых хранятся строки, никогда не выходят за рамки.
Обратите внимание, что между литеральными строками в C и C ++ есть семантическая разница: в C ++буквенные строки хранятся в массивах констант символов (поэтому необходимо const
в const char*
).В C они не являются константными массивами (поэтому char *
в порядке в C).Однако нельзя изменять буквенную строку в C, что делает их только для чтения (но не постоянными).