想问大家一个程序自我复制的问题(quine)
#include<stdio.h> char *s="#include<stdio.h>%cchar *s=%c%s%c;main(){printf(s,10,34,s,34,10);return 0}%c";main(){printf(s,10,34,s,34,10);return 0;}
上面这个程序执行之后会把自己的代码打印出来,这个问题应该叫做"quine",
网上有这类程序的收集
据说执行
printf(s,10,34,s,34,10);
之后会打印第1,2行
这个printf是怎么一回事??好像很多这类程序都有 10, 34这两个数字
并且字符串s里没有换行符,并且(space都被%c处理了??)
这里%c 又是怎么回事?各种不解?