Тип хранения литеральных типов: логическое, целое, плавающее, символьное и nullptr не указано, и поэтому им не нужно иметь место для хранения в памяти.
Тип хранения литерального строкового типауказано: "... Строковые литералы имеют статическую длительность хранения и, следовательно, существуют в памяти на весь срок жизни программы ..." source: https://en.cppreference.com/w/cpp/language/string_literal
Следовательно, адресбуквальная строка может быть взята и сохранена в const char *
.
. Как предложено @MichaelKenzel:
Из проекта стандарта C ++ 17 (n4659) https://timsong -cpp.github.io/cppwp/n4659/lex.string#16
Оценка строкового литерала приводит к строковому литеральному объекту со статической продолжительностью хранения, инициализированному из заданных символов, как указанонад. Все ли строковые литералы различны (то есть хранятся ли в неперекрывающихся объектах) и дают ли последовательные вычисления строкового литерала один и тот же или другой объект не определено. [Примечание: эффект от попытки изменить строковый литерал не определен. - Конечная нота]