以前就知道有这几个代码了,一般网上都写了是美国某某C语言比赛的几等奖作品,我也没时间查来源了。都很精简或极度灵活,可以体现代码的魅力。
【一】
main() { printf(&unix[""021%six"012"0"], (unix)["have"] + "fun" - 0x60); }
运行结果:
unix
【二】
char*s="char*s=%c%s%c;main(){printf(s,34,s,34);}";main(){printf(s,34,s,34);}
照镜子程序。这段代码会把自身打印出来。以前同济大学OJ上有一个题目是要求打印自身的,当时我用PASCAL学习别人写了一个,自己脑子不够灵活,没想出来。
【三】
#include <stdio.h>
main(t,_,a)char *a;{return!0<t?t<3?main(-79,-13,a+main(-87,1-_,
main(-86,0,a+1)+a)):1,t<_?main(t+1,_,a):3,main(-94,-27+t,a)&&t==2?_<13?
main(2,_+1,"%s %d %d\n"):9:16:t<0?t<-72?main(_,t,
"@n\'+,#\'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#\
;#q#n+,/+k#;*+,/\'r :\'d*\'3,}{w+K w\'K:\'+}e#\';dq#\'l \
q#\'+d\'K#!/+k#;q#\'r}eKK#}w\'r}eKK{nl]\'/#;#q#n\'){)#}w\'){){nl]\'/+#n\';d}rw\' i;# \
){nl]!/n{n#\'; r{#w\'r nc{nl]\'/#{l,+\'K {rw\' iK{;[{nl]\'/w#q#n\'wk nw\' \
iwk{KK{nl]!/w{%\'l##w#\' i; :{nl]\'/*{q#\'ld;r\'}{nlwb!/*de}\'c \
;;{nl\'-{}rw]\'/+,}##\'*}#nc,\',#nw]\'/+kd\'+e}+;#\'rdq#w! nr\'/ \') }+}{rl#\'{n\' \')# \
}\'+}##(!!/")
:t<-50?_==*a?putchar(31[a]):main(-65,_,a+1):main((*a==\'/\')+t,_,a+1)
:0<t?main(2,2,"%s"):*a==\'/\'||main(0,main(-61,*a,
"!ek;dc i@bK\'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry"),a+1);}
这段代码运用大量递归,输出是十二篇日记,记录作者的女朋友给了他……比较有意思,我很欣赏。