C语言的函数嵌套调用与函数递归调用有啥区别?

看谭浩强的第三版看了半天没看明白这两个调用有啥区别,(顺带一提,谭老师的英语貌似不太好……),看到网友说递归是嵌套的一种,是吗?具体区别到底是什么?... 看谭浩强的第三版看了半天没看明白这两个调用有啥区别,(顺带一提,谭老师的英语貌似不太好……),看到网友说递归是嵌套的一种,是吗?
具体区别到底是什么?
展开
 我来答
百度网友f3ea62c
推荐于2018-03-09 · TA获得超过113个赞
知道答主
回答量:28
采纳率:0%
帮助的人:35.1万
展开全部
需要明白的是

函数嵌套是语言特性,递归调用是逻辑思想。

函数嵌套允许在一个函数中调用另外一个函数,比如有三个函数

funca()
{
funcb();
}

funcb()
{
funcc();
}

funcc()
{
cout << "Hello" <<endl;
}

这个就叫做嵌套调用,它是一个语言提供的程序设计的方法,也就是语言的特性。

而递归是一种解决方案,一种思想,将一个大工作分为逐渐减小的小工作,比如说一个和尚要搬50块石头,他想,只要先搬走49块,那剩下的一块就能搬完了,然后考虑那49块,只要先搬走48块,那剩下的一块就能搬完了……,递归是一种思想,只不过在程序中,就是依靠函数嵌套这个特性来实现了。

递归最明显的特点就是,自己调用自己(不就嵌套调用了嘛)。
funca()
{
if(statement1)
funca();
else
exit(0);
}

概括说,函数嵌套就是函数调用函数,是普遍的,递归就是函数调用自身,使函数嵌套的一个特例。

我说的不知道明不明白,有点乱……
游素枝钞裳
2019-09-07 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.4万
采纳率:35%
帮助的人:865万
展开全部
函数嵌套是语言特性,递归调用是逻辑思想。
1
函数嵌套
函数嵌套允许在一个函数中调用另外一个函数,比如有三个函数
例:
funca()
{
funcb();
}
funcb()
{
funcc();
}
funcc()
{
cout
<<
"Hello"
<<endl;
}
这个就叫做嵌套调用,它是一个语言提供的程序设计的方法,也就是语言的特性。
2
递归调用
而递归是一种解决方案,一种思想,将一个大工作分为逐渐减小的小工作,比如说一个和尚要搬50块石头,他想,只要先搬走49块,那剩下的一块就能搬完了,然后考虑那49块,只要先搬走48块,那剩下的一块就能搬完了……,递归是一种思想,只不过在程序中,就是依靠函数嵌套这个特性来实现了。
递归最明显的特点就是,自己调用自己。
例:
funca()
{
if(statement1)
funca();
else
exit(0);
}
概括说,函数嵌套就是函数调用函数,是普遍的,递归就是函数调用自身,使函数嵌套的一个特例。
嵌套调用就是某个函数调用另外一个函数,递归调用是一个函数直接或间接的调用自己。举几个例子:A调用B(嵌套)B调用C(嵌套)A调用A(递归)A调用B
B调用A
(递归)A调用B
B调用C
C调用A
(递归)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
司烟雀念
2020-03-31 · TA获得超过3.8万个赞
知道大有可为答主
回答量:1.4万
采纳率:30%
帮助的人:679万
展开全部
需要明白的是
函数嵌套是语言特性,递归调用是逻辑思想。
函数嵌套允许在一个函数中调用另外一个函数,比如有三个函数
funca()
{
funcb();
}
funcb()
{
funcc();
}
funcc()
{
cout
<<
"Hello"
<<endl;
}
这个就叫做嵌套调用,它是一个语言提供的程序设计的方法,也就是语言的特性。
而递归是一种解决方案,一种思想,将一个大工作分为逐渐减小的小工作,比如说一个和尚要搬50块石头,他想,只要先搬走49块,那剩下的一块就能搬完了,然后考虑那49块,只要先搬走48块,那剩下的一块就能搬完了……,递归是一种思想,只不过在程序中,就是依靠函数嵌套这个特性来实现了。
递归最明显的特点就是,自己调用自己(不就嵌套调用了嘛)。
funca()
{
if(statement1)
funca();
else
exit(0);
}
概括说,函数嵌套就是函数调用函数,是普遍的,递归就是函数调用自身,使函数嵌套的一个特例。
我说的不知道明不明白,有点乱……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
L_o_o_n_i_e
2007-07-31 · TA获得超过4.2万个赞
知道大有可为答主
回答量:8507
采纳率:38%
帮助的人:5235万
展开全部
递归调用 就是函数里出现自己调用自己,直接或曲折迂回调用到自己。

嵌套调用就是不同子程序之间相互调用,无论如何曲折迂回,也不出现自己调用自己的情况。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
安义翟衣
2020-02-10 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:27%
帮助的人:778万
展开全部
嵌套调用这个名词是没有任何意义的,看到那本书上有这个名词赶紧扔掉吧!
递归是函数(或过程其他语言)直接或间接调用自已的做法!例如
1)直接递归调用
int
f(int
n){if(n==0)return
1;/*必须有这样的一步*/
return
n*f(n-1);/*当然象这样简单计算不需要用递归!*/
}
2)问接调用
double
g(double
x,int
n);
doube
f(double
x,int
n){if(x<=0&&n<=0)retun
0;
if(n==0)return
0;if(n==1)return
x;
if(n<0)return
f(1/x);
if(n&1)return
x*g(x,n/2);
return
g(x,n/2);
}
double
g(double
x,n){return
f(x*x,n);}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式