Компиляция строковых литералов
Почему два строковых литерала, разделенных пробелом, табуляцией или "\ n", могут быть скомпилированы без ошибок?
int main()
{
char * a = "aaaa" "bbbb";
}
"aaaa" - это символ * "bbbb" - это символ *
Не существует специального правила объединения для обработки двух строковых литералов. И, очевидно, следующий код выдает ошибку во время компиляции:
#include <iostream>
int main()
{
char * a = "aaaa";
char * b = "bbbb";
std::cout << a b;
}
Является ли эта конкатенация общей для всех компиляторов? Где нулевое окончание "аааа"? Является ли «aaaabbbb» непрерывным блоком оперативной памяти?