关于函数递归中的返回问题
我有一个返回类型为int的函数dfs,如果在里面还有递归,然后函数里有个句子是在一定条件下就 return 一个int的,那么程序运行到这里return以后是整个函数都结束了??还是只结束当前这一层的递归函数,然后返回到上一层。比如
int dfs()
{
...
if(...)
dfs();
else
return 1;
}
这样子的如果满足了return 1的条件接下来会怎么??
[解决办法]
结束当前这一层,不然递归还有啥意义弄个循环不就完了
[解决办法]
#include<stdio.h>
int digui(int m)
{
m=m+1;
if(m<6)
return digui(m);
else return 1;
}
int main(void)
{int n;
n=digui(3);
printf("%d\n",n);
}
满足return 1条件后,就跳出该递归,返回 值1, 上面的代码,可以去调试下,如果满足return 1 就仅仅结束当前这一层,就把该值返回给函数。 继续递归,可递归的形参在哪??
[解决办法]
跳出本层递归
[解决办法]
从汇编的角度来看 他就是一个Ret 他是会跳转到子程下一条指令