一段特别有意思的代码引申出的几个问题,请大大大大虾进来给小弟解释一下,谢谢.
今天在某地看到一段代码,觉得特别有意思,如下:
#include <stdio.h>
main(_){char*x="*b#**000**I#*******2*0***#-.****5.*-#-.****54.#*******2**6#****00**0.#";
while(_=*x/4)_-=8,printf("\n%*s"+!!_,_+_,"_/_/_/"+*x++%4*2);}
这段代码就是打印出一个"knock"的字母banner.
具体他是怎么实现的我不太关心,毕竟这种一点可读性都没有的代码还是少学为好..呵呵.
可是之中有两个地方我想弄懂,大家一起讨论哈.
问题1:
printf("\n%*s"...
这个"%*s"是什么类型的参数,printf有这种隐藏参数吗?做什么用的?如果有人有比较完整的printf参数的资料,还望share一下.
问题2:
接着问题1,("\n%*s"+!!_,
这个是一个字符串和一个变量相加吗?可以这样用吗,这两个"!!"号是两个求反运算吗?
谢谢.