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

看谭浩强的第三版看了半天没看明白这两个调用有啥区别,(顺带一提,谭老师的英语貌似不太好……),看到网友说递归是嵌套的一种,是吗?
具体区别到底是什么?

第1个回答  2007-08-01
函数调用: 为了实现某种功能,在"某程序段"里面调用了已实现此功能的函数A,这叫函数调用.

嵌套调用: A调用B,B调用C,这一系列的调用叫嵌套调用.可以理解为像这样的两次"函数调用"就叫嵌套调用.

第归调用: A调用自己本身A,这种函数调用叫递归调用.而像A这样的函数叫递归函数.

理解就好,不要专牛角尖.花多点时间在其他未知的地方.
第2个回答  2013-03-18
我个人认为 单从对象来说 嵌套是调用一个“东西”,递归只是把自己调用了,自己成了那个东西。从性质来讲嵌套是函数的特性及本能就是“调”而递归却不是这样的,递归太狭窄了。
第3个回答  2007-07-31
嵌套就是在一个函数里调用其它的函数(可以是自己)
递归就是函数里又调用自己这个函数的特殊情况,所以递归还是嵌套,只不过因为这种递归用法很特殊,解决某些问题显得很简炼,所以单独介绍
第4个回答  2007-08-01
递归是嵌套的一种

嵌套指函数里调函数
递归指函数里调自己
第5个回答  推荐于2016-03-31
函数嵌套是语言特性,递归调用是逻辑思想。
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 (递归)
相似回答