For compatibility with C, string literals in C++(www.cppentry.com) have one character in addition to those typed in by the programmer. Every string literal endswith a null character added by the compiler. A character literal
- ’A’
represents the single character A, whereas
- "A"
represents an array of two characters: the letter A and the null character.
Just as there is a wide character literal, such as
- L’a’
there is a wide string literal, again preceded by L, such as
- L"a wide string literal"
The type of a wide string literal is an array of constant wide characters. It is also terminated by a wide null character.
Concatenated String Literals
Two string literals (or two wide string literals) that appear adjacent to one another and separated only by spaces, tabs, or newlines are concatenated into a single new string literal. This usage makes it easy to write long literals across separate lines:
-
- std::cout << "a multi-line "
What happens if you attempt to concatenate a string literal and a wide string literal For example:
The result is undefined—that is, there is no standard behavior defined for concatenating the two different types. The program might appear to work, but it also might crash or produce garbage values. Moreover, the program might behave differently under one compiler than under another.