Compilação de literais de string

Por que dois literais de seqüência de caracteres separados por um espaço, tabulação ou "\ n" podem ser compilados sem erro?

int main()
{
   char * a = "aaaa"  "bbbb";
} 

"aaaa" é um caractere * "bbbb" é um caractere *

Não há regra de concatenação específica para processar dois literais de cadeia de caracteres. E, obviamente, o código a seguir apresenta um erro durante a compilação:

#include <iostream>
int main()
{
   char * a = "aaaa";
   char * b = "bbbb";
   std::cout << a b;
}

Essa concatenação é comum a todos os compiladores? Onde está o encerramento nulo de "aaaa"? "Aaaabbbb" é um bloco contínuo de RAM?

questionAnswers(5)

yourAnswerToTheQuestion