C no tiene un operador de concatenación de cadena específico ( +
) como C # y Java. En C # o Java, cuando el compilador ve
"a" + "b"
puede compilar el código exactamente como si
"ab"
fueron escritos en el código fuente. En C, sin embargo, no hay una sintaxis similar para describir la concatenación de cadenas que el compilador puede reconocer y precalcular. Así que los diseñadores de C décadas atrás eligieron eso
"a" "b"
significaría exactamente lo mismo que
"ab"
Naturalmente, C ++ heredó la misma convención. Mientras que la biblioteca estándar de C ++ sobrecarga +
en std::string
para significar concatenación de cadenas, el compilador no intenta unir co% c "a" + "b"
porque eso es realmente un error (no se pueden agregar dos const char *
punteros juntos).