Top.Mail.Ru
Ответы

Строковые константы в C++

Все ли строки, заключенные в " " являются строковой константой? Или для этого они обязательно должны обьявляться с использованием const?
Например:
cout << " Hello world " << endl;
Hello world здесь строковая константа?

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Новичок

Бесполезная функция, которая содержит строковую константу:

123
 void useless() {  
    "Hello World!";  
} 

Полезная функция, которая выводит в консоль строковую константу:

123
 void useful() {
    puts("Hello World!");
} 

Строка STL, которая инициализирована строковой константой:

1234567
 #include <iostream> 
#include <string> 
using namespace std; 
int main() { 
    string hello = "Hello World!"; 
    cout << hello << '\n'; 
} 

Вывод. Строковая константа, это содержимое заключённое между парой двойных кавычек, даже если там, на первый взгляд ничего нет. Например,

1
 char empty[] = ""; 

В современном С++ ещё имеется возможность создавать многострочные строковые константы:

1234567891011121314
 #include <iostream> 
#include <string> 
using namespace std; 
int main() { 
    string multiline = R"(Буря мглою небо кроет, 
Вихри снежные крутя; 
То, как зверь, она завоет, 
То заплачет, как дитя, 
То по кровле обветшалой 
Вдруг соломой зашумит, 
То, как путник запоздалый, 
К нам в окошко застучит.)"; 
    cout << multiline << '\n'; 
} 
Аватар пользователя
Мастер

Получается да