能力值:
( LV12,RANK:779 )
|
-
-
2 楼
写为简单的如下:
"J!Mpwf!Zpv\1" 每个减一是"I Love You\0"
char a[]="J!Mpwf!Zpv\1";
main(_)
{
for (--_; putchar(a[_++] - 1););
}
$ gcc test.c
$ ./a
I Love You 最初由 xeno 发布 这两天在其他论坛上看到这么一段程序 main(_){for(--_;putchar(_++["J!Mpwf!Zpv\1"]-1) ; ) ; } 这段程序的putchar函数运用的很巧妙。特意拿出来给大家看看
|
能力值:
( LV6,RANK:90 )
|
-
-
3 楼
我发这个帖子的目的不在于这个I love U,而是在于putchar函数的调用方法。至少这种方法是在教科书上没有见过的。
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
这个C的语法是我在C语言的书上没有找到,哪个地方有介绍啊?
int i=2;
char c;
c=i["abcdefg"]; //就是这一行
assert(c=='b')
|
能力值:
(RANK:650 )
|
-
-
5 楼
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);}
|
能力值:
(RANK:650 )
|
-
-
6 楼
保存成.c文件,编译
|
能力值:
( LV12,RANK:779 )
|
-
-
7 楼
int putchar(int c)
成功返回的就是c,
for循环在字符串结束时,因为返回0,判断语句为假,而中止,
这就是for循环,不是putchar有什么特殊用法 最初由 xeno 发布 我发这个帖子的目的不在于这个I love U,而是在于putchar函数的调用方法。至少这种方法是在教科书上没有见过的。
|
能力值:
( LV12,RANK:779 )
|
-
-
8 楼
c=j[ "abcdefg" ]
也就是c="abcdefg"[j] ;
char a[5]="abcde";
则
a[1]=1[a]=*(a+1)=b
一个意思
验证一下:
char a[5]="abcde";
main()
{
printf("a[1]:%c,1[a]:%c,*(a+1):%c",a[1],1[a],*(a+1));
}
$ gcc test.c
$ ./a
a[1]:b,1[a]:b,*(a+1):b 最初由 auser 发布 这个C的语法是我在C语言的书上没有找到,哪个地方有介绍啊?
int i=2; char c; c=i["abcdefg"]; //就是这一行 ........
|
能力值:
( LV6,RANK:90 )
|
-
-
9 楼
原来如此,受益匪浅。谢谢!
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
(--_; putchar(a[_++] - 1););
这个下划线 "_" 是什么意思???
|
能力值:
( LV4,RANK:50 )
|
-
-
11 楼
最初由 walaog 发布 (--_; putchar(a[_++] - 1););
这个下划线 "_" 是什么意思???
"_"可以作变量名.
|