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