当前位置: 代码迷 >> C语言 >> 程序解释:执行过程说明?
  详细解决方案

程序解释:执行过程说明?

热度:175   发布时间:2007-07-31 19:00:37.0
程序解释:执行过程说明?

这个递归调用是怎么实现的,具体步骤是怎样的?能帮忙说明下吗?越详细越好,谢谢了!
#include<stdio.h>
out(char s[])
{ if(*s) out(s+1);
else return;
putchar(*s);
}

main()
{char a[]="12345";
out(a);
putchar('\n');
}

搜索更多相关的解决方案: 解释  

----------------解决方案--------------------------------------------------------

字符数组a的头指针刚开始指向1,那在out函数中if(*s)就为1,则调用out函数,参数为s+1,即为2……以此类推,最后当a指向5时,下一个是字符数组的结束符‘\0’,此时在调用out函数时就执行else return语句了。返回后就执行当a指向5的那个putchar(*s),那么第一个输出的就是5了,因此整个代码的输出应该是54321吧。


我大概知道怎么看,但不知道怎么说,说得不清楚请原谅了。如果有什么错误请哪位大虾指出吧~


----------------解决方案--------------------------------------------------------
  相关解决方案