如何打印自身代码
文章目录
基本思想是:
-
在程序中生成字符串self;
-
加入把self改写成程序自身的算法编码;
-
输出self字符串。
|
|
解析:
引号里面的内容全都是string串:”#include %cchar recurse=%c%s%c;%cint main(){printf(recurse,10,34,recurse,34,10,10);}*%c“;
执行过程如下:
printf方法首先打印第一个参数recurse,一直打印到第一个%c 其中第一个%c表示的是打印main函数中的printf方法的第二个参数10,表示的是换行符
然后接着正常打印到第二个%c,表示printf第三个参数34,表示的是引号 然后是%s,表示的是将recurse完全转化为一个string串然后打印出来(意思就是其中的%c%s等等都变成了string串,而不会执行之前转义符的功能)
然后是第三个%c,同样是34,引号
第四个%c,10,换行符
第五个%c,10,换行符
文章作者 Forz
上次更新 2017-06-23