Compilación de literales de cadena
¿Por qué se pueden compilar dos literales de cadena separados por un espacio, tabulación o "\ n" sin un error?
int main()
{
char * a = "aaaa" "bbbb";
}
"aaaa" es un char * "bbbb" es un char *
No existe una regla de concatenación específica para procesar dos literales de cadena. Y, obviamente, el siguiente código da un error durante la compilación:
#include <iostream>
int main()
{
char * a = "aaaa";
char * b = "bbbb";
std::cout << a b;
}
¿Es esta concatenación común a todos los compiladores? ¿Dónde está la terminación nula de "aaaa"? ¿Es "aaaabbbb" un bloque continuo de RAM?