就是在一个函数内部调用这个函数如求n的阶乘
int fun(int n)
{
if(n==0)
return 1;
else
return nfun(n-1);
}
在else中就调用了 fun函数就是它自身
先调用函数f,然后把返回值赋值给z。不过这个函数不对,没有退出条件,无法停止。举例说明吧
int f(int x)
{
if(x==0)
{
return 1;
}
else
{
return xf(x-1);
}
}
假如f(3)
那么
第一次f(3):x!=0,调用f(2)
第二次f(2):x!=0,调用f(1)
第三次f(1):x!=0,调用f(0)
第四次f(1):x==0,返回1
返回第三次调用f(1):返回11=1;
返回第二次调用f(2):返回21=2;
返回第一次调用f(3):返回32=6;
f(3)的结果为6
一般来说是自己调用自己,一般有两个分支,一个分支是调用自己,还有一个分支是结束条件
如求n!
int f(int n)
{
if(n==1) //这个是结束条件
return 1;
else //这个是调用自己的分支
return nf(n-1);
}
还有一个比较复杂一点,是双向调用,也就是a函数调用b函数,b函数在调用a函数
这样循环调用,其实基于这个道理,还有多个函数互相调用,不过这样的情况很少见
但万变不离其宗,每个函数都有两个分支,一个是结束条件,一个是调用函数
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)