Zusammenstellung von String-Literalen
Warum können zwei durch Leerzeichen, Tabulator oder "\ n" getrennte String-Literale fehlerfrei kompiliert werden?
int main()
{
char * a = "aaaa" "bbbb";
}
"aaaa" ist ein char * "bbbb" ist ein char *
Es gibt keine spezielle Verkettungsregel für die Verarbeitung von zwei Zeichenfolgenliteralen. Und offensichtlich gibt der folgende Code einen Fehler beim Kompilieren:
#include <iostream>
int main()
{
char * a = "aaaa";
char * b = "bbbb";
std::cout << a b;
}
Ist diese Verkettung allen Compilern gemeinsam? Wo ist die Nullterminierung von "aaaa"? Ist "aaaabbbb" ein kontinuierlicher RAM-Block?