首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于函数递归中的返回有关问题

2012-07-28 
关于函数递归中的返回问题我有一个返回类型为int的函数dfs,如果在里面还有递归,然后函数里有个句子是在一

关于函数递归中的返回问题
我有一个返回类型为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 他是会跳转到子程下一条指令

热点排行