看到有个人的签名档是:
main(_) { for(--_;putchar(_++["J!Mpwf!Zpv\"\013\1"]-1);); } 这段代码能打印出 I Love You!。呵呵,分析了一下,_ 是 main() 的第一个参数,就是通常那个 argc,至于 ip 这个形式等价于 pi,都是一样按指针加偏移计算的,以前在某个地方见过的。引号里面那段东西每个减去 1 就是 “I Love You!\n” 这个字符串了。写得规范一点就容易懂了: #include <stdio.h>
int main(int argc, char **argv)
{
char *s = "J!Mpwf!Zpv\"\013\1";
for (--argc; putchar(s[argc++] - 1););
return 0;
}