这个递归调用是怎么实现的,具体步骤是怎样的?能帮忙说明下吗?越详细越好,谢谢了!#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吧。 我大概知道怎么看,但不知道怎么说,说得不清楚请原谅了。如果有什么错误请哪位大虾指出吧~