programme qui s’imprime, comment ça marche?

Je suis tombé sur un programme qui imprime lui-même sur cette site, c'est à dire qu'il imprime le code du programme.

Code du programme:

#include <stdio.h>
char *program = "#include <stdio.h>%cchar *program = %c%s%c;%cint main()%c{%cprintf(program, 10, 34, program, 34, 10, 10, 10, 10, 10, 10);%c    return 0;%c}%c";
//what is this line doing, what is the use of %c and %s and what properties of %c and %s are being used here?
int main()
{
        printf(program, 10, 34, program, 34, 10, 10, 10, 10, 10, 10);
        //what is this print function doing, and how?
        return 0;
}

Et de l'explication donnée est:

Les deux principaux astuces sont ici à l'aide d'une chaîne avec un intégré à %s
rédacteur de devis afin de permettre la chaîne de contenir lui-même lors de l'impression, et à
utiliser le %c spécificateur de format afin de permettre l'impression des caractères spéciaux
comme les retours à la ligne, qui ne pourraient pas autrement être inclus dans le résultat
chaîne de caractères.

Je n'ai pas de comprendre comment le programme fonctionne. J'ai mentionné les lignes que j'ai besoin d'explications sur la façon dont ils fonctionnent et ce qu'ils sont en train de faire. Veuillez expliquer.

source d'informationauteur SpeedBirdNine