递归调用求解,望“”“大神”“”赐教!!!这个程序没错误,我只是问一下是不是像我说的那样运行的
#include<stdio.h>//是递归调用把输入的数字转化为字符串输出的函数#include<gs.h>
void main()
{
void zifu(int a);
int a;
S("%d",&a);
zifu(a);
}
extern void zifu(int a)
{
int i;
i=a/10;
if(a/10!=0)
zifu(i);
putchar(a%10+'0');
putchar('n');
}
///我的问题是,这个递归调用相当于一个栈,那么是不是这样:假设输入123,运行时:
a 123 12 1
i / 12 1 然后依次输出1 2 3;是不是每次调用后形参a的值都被系统保存了起来,等到if(a/10!=0)zifu(i);所有调用结束后,
然后触底反弹,再执行putchar(a%10+'0');putchar('n');语句,依次从栈顶输出???
请问大神,是这样运行的吗?
[ 本帖最后由 haiboself 于 2013-10-26 17:12 编辑 ]