----------------解决方案--------------------------------------------------------
这个程序与神大同小异。
#include<stdio.h>
int main(void)
{
char *s="#include<stdio.h>%cint main(void)%c{%c%cchar *s=%c%s%c%c%c%cprintf(s,10,10,10,9,34,s,34,59,10,9,10,9,10);%c%creturn 0;%c}";
printf(s,10,10,10,9,34,s,34,59,10,9,10,9,10);
return 0;
}
----------------解决方案--------------------------------------------------------
printf(s,10,10,10,9,34,s,34,59,10,9,10,9,10);
解释一下这句吧
大哥
----------------解决方案--------------------------------------------------------
你可以看成这样printf("....",x,x1,x2,x3,x4。。。);
"......."==s看成地址
x,x1,x2,x3,x4。。。看成后面10,10,10,9,34,s,34,59,10,9,10,9,10。
----------------解决方案--------------------------------------------------------
我自己做了个实验,加上你的说明
终于明白了,还是自己没把这个函数吃透彻呀
被教科书上的例子冰封了.
printf的第一个参数其实就是一个字符串指针,当然可以用str了,str里面是普通字符就原样输出
格式字符就把后面对应的值输出.
习惯了教科书上的printf("xxxxxx",1,2);这种模式,
看见你们的写法,突然间像看到新大陆样,.....
头脑不灵活.
----------------解决方案--------------------------------------------------------
大家相互学习才对。
----------------解决方案--------------------------------------------------------
[QUOTE]我自己做了个实验,加上你的说明
终于明白了,还是自己没把这个函数吃透彻呀
被教科书上的例子冰封了.
printf的第一个参数其实就是一个字符串指针,当然可以用str了,str里面是普通字符就原样输出
格式字符就把后面对应的值输出.
习惯了教科书上的printf("xxxxxx",1,2);这种模式,
看见你们的写法,突然间像看到新大陆样,.....
头脑不灵活.[/QUOTE]
建议学习学习汇编与计算机组成原理,利用--多利用debug调试汇编程序.
----------------解决方案--------------------------------------------------------
[QUOTE]
大家相互学习才对。
[/QUOTE]great!!!!!
----------------解决方案--------------------------------------------------------
to:shuaiye有什么好作品介绍。
----------------解决方案--------------------------------------------------------
最近在看一本书,叫深入理解计算机系统,很不错,网上可以下载到.
----------------解决方案--------------------------------------------------------