C语言中return要返回到哪里?

下列函数 #include<stdio.h> wetl(int n) { if(n!=0) {wrtl(n-1);printf("%d\n",n); } return ; } 是一个递归函数,但是return是怎么返回的。

递归就是一个函数调用该函数本身。。。。
但必须要有终止条件。。。。。
举上楼的例子:
wetl(int n)
{
if(n!=0) return wetl(n-1);
else
return n;

}

假若n=2;
n!=0
执行 wetl(n-1),也就是welt(1);//要清楚此时还未跳出wetl(2){。。。。。}这个函数,它处于等待之中;
1!=0;
执行 wetl(n-1),也就是welt(0);//要清楚此时还未跳出wetl(1){。。。。。}这个函数,它处于等待之中;
0=0;则执行return n;
此时要返回上一层 去完成welt(1);
完成welt(1);后返回上层 去完成welt(2);
完成welt(2);后返回上层 去完成welt(3);
此时回到了初始状态,结束

好好想想假若一个函数A里有两个其它函数B C,如果仅执行了B函数,那么A函数就算执行完了吗???还有B都未执行完可以直接跳到C函数吗???所以必须去执行完B函数,等B完成后,跳出B函数去完成C函数,A函数才算完成。
递归就是把上面的B函数换成A函数,即A函数里有两个函数A C,然后去执行
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-11-28
这指的是返回上一级,比如一个递归程序,从第三层返回到第二层;又比如一个普通的子程序,那就返回到主程序中去。
第2个回答  2012-11-28
你这个递归写的有问题。
wetl(int n)
{
if(n!=0) return wetl(n-1);
else
return n;

}
应该这样写的本回答被网友采纳
相似回答