Dos cadenas separadas por espacio en blanco se concatenan automáticamente

Acabo de encontrar algo muy interesante que fue introducido por mi error tipográfico. Aquí hay una muestra de código de comandos muy fácil:

printf("A" "B"); 

El resultado sería

 $> AB 

¿Alguien puede explicar cómo sucede esto?

Como parte del estándar C, los literales de cadena que están uno al lado del otro se concatenan:

Para C (citando C99, pero C11 tiene algo similar en 6.4.5p5):

(C99, 6.4.5p5) “En la fase de traducción 6, las secuencias de caracteres multibyte especificadas por cualquier secuencia de caracteres adyacentes y tokens literales de cadena idénticamente prefijados se concatenan en una sola secuencia de caracteres multibyte”.

C ++ tiene un estándar similar.

Este es un comportamiento estándar y puede ser muy útil cuando se divide una constante de cadena muy larga en varias líneas.

Esto es concatenación de cadenas, parte del estándar C. Cualquier dos o más literales consecutivos de cuerdas se combinan en uno.