Я наткнулся на программу, которая печатает себя на этом сайте, то есть печатает программный код.
Программный код:
#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;
}
И приведенное ниже объяснение:
В двух ключевых трюках используется строка со встроенным% s спецификатор, чтобы строка могла содержать себя при печати, а также используйте спецификатор формата% c, чтобы разрешить печать специальных символов как новые строки, которые иначе не могли быть встроены в вывод строка.
Я не понял, как работает программа. Я упомянул о строках, в которых мне нужно объяснение, как они работают и что они делают. Пожалуйста, объясните.