int i;main(){for(;i["]<i;++i){--i;}"];read('-'-'-',i+++"hell/
o, world!/n",'/'/'/'));}read(j,i,p){write(j/p+p,i---j,i/i);}
-----------------------c语言不愧是经典语言呵呵
1将源程序进行格式化
int i;
main()
{
for(;i["]<i;++i){--i;}"];read('-'-'-',i+++"hell/o, world!/n",'/'/'/'));
}
read(j,i,p)
{
write(j/p+p,i---j,i/i);
}
2呵呵开始分析化简了
'-'-'-' ==0 大家调试一下便知 (printf("%d",'-'-'-'))
'/'/'/' ==1
for(;i["]<i;++i){--i;}"];read('-'-'-',i+++"hell/o, world!/n",'/'/'/'));
调整后==>
for(;i["]<i;++i){--i;}"];read(0,i+++"hell/o, world!/n",1));
对for分解后得到==>
for(;;)
{
while(i["]<i;++i){--i;}"])
read(0,i+++"hell/o, world!/n",1);
}
对while(i["]<i;++i){--i;}"])分析==>
由于c的编译器对i[n]和n[i]的编译结果相同(*(i+n)==*(n+i))所以==>
while(i["]<i;++i){--i;}"])<==>while("]<i;++i){--i;}"[i])
此处我们声明char *string="]<i;++i){--i;}"==>
则while语句转化为while(string[i])
3最后的代码
int i;
main()
{
char *string="]<i;++i){--i;}";
for(;;)
{
while(string[i])
read(0,i+++"hell/o, world!/n",1);
}
}
read(j,i,p)
{
write(1,i,1);/
}
/*write函数说明在Linux下,write函数表示向文件中写入数据
形参依次是:文件描述符,缓冲区,字节数
文件描述符0为基本输入设备,认为是键盘,1为基本输出设备,认为是显示器。*/
1984年混乱C语言大赛程序分析
最新推荐文章于 2024-02-28 00:00:00 发布