Компиляция строковых литералов

Почему два строковых литерала, разделенных пробелом, табуляцией или "\ n", могут быть скомпилированы без ошибок?

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

"aaaa" - это символ * "bbbb" - это символ *

Не существует специального правила объединения для обработки двух строковых литералов. И, очевидно, следующий код выдает ошибку во время компиляции:

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

Является ли эта конкатенация общей для всех компиляторов? Где нулевое окончание "аааа"? Является ли «aaaabbbb» непрерывным блоком оперативной памяти?

Ответы на вопрос(5)

Ваш ответ на вопрос