C语言的函数嵌套调用与函数递归调用有什么区别
区别:函数的嵌套调用是指在一个C语言函数里面在执行另一个函数,这样通常称为函数的嵌套调用。而函数的递归调用,一般指的是这个C语言函数调用自己本身的函数也就是说调用函数的函数体是一样的,这样称为递归调用。扩展资料:函数的分类从用户使用的角度看,函数有两种:标准函数,即库函数。这是由系统提供的。用户自定义的函数。可以解决用户的专门需要。从函数的形式看,函数分两类:无参函数。printstar和print_message就是无参函数。在调用无参函数时,主调函数并不将数据传送给被调用函数,一般用来执行指定的一组操作。有参函数。在调用函数时,在主调函数和被调用函数之间有数据传递。也就是说,主调函数可以将数据传递给被调用函数使用,被调用函数中的数据也可以带回来供主调函数使用。参考资料来源:百度百科—main函数
c语言中嵌套调用和递归调用的区别
一、作用不同:函数嵌套允许在一个函数中调用另外一个函数,比如有三个函数 例:funca() { funcb(); } funcb() { funcc(); } funcc() {cout << "Hello" <<endl; }这个就叫做嵌套调用,它是一个语言提供的程序设计的方法,也就是语言的特性。递归调用是一种解决方案,在程序中,递归函数的限制条件就是变量quotient为零。在每次递归调用之前,我们都把quotient除以10,所以每递归调用一次,它的值就越来越接近零。当它最终变成零时,递归便告终止。二、含义不同:嵌套调用,就是函数里面调用函数,调用的是谁没关系,都属于嵌套。递归调用,就是函数调用本身。三、调用方式不同:嵌套调用说的是调用其它函数。递归调用是指自己调用自己。扩展资料:递归调用就是在当前的函数中调用当前的函数并传给相应的参数,这是一个动作,这一动作是层层进行的,直到满足一般情况的的时候,才停止递归调用,开始从最后一个递归调用返回。递归调用是一种特殊的嵌套调用,是某个函数调用自己或者是调用其他函数后再次调用自己的,只要函数之间互相调用能产生循环的则一定是递归调用。参考资料来源:百度百科-递归调用
c语言中,什么是函数的递归,能举个例子么
所谓递归,说的简单点,就是函数自己调用自己,然后在某个特定条件下。结束这种自我调用。
如果不给予这个结束条件,就成了无限死循环了。这样这个递归也就毫无意义了。
如下面问题
1 1 2 3 5 8 13 21 ........n
分析可以看出, i 表示第几个数, n 表示该数的值
当i = 1 时, n = 1;
当i = 2 时, n = 1;
当i = 3 时 n = i1 + i2;
当i = 4 时 n = i2 + i3
所以可以写个函数
int fun(int n) // 这里的n代表第几个数
{
if(1 == n || 2 == n) // 第一个数
{
return 1;
}
else
{
return fun(n - 1) + fun(n - 2); // 这里就是自己调用自己,形成循环自我调用。
}
}
注: 以上代码只是用来演示递归,不包含错误校验。
在实际生产过程中。该代码不够健壮。
如此,就完成了递归。你就可以求得第n个数了。
何时考虑使用递归。
当你分析一个问题的时候,发现这个问题,是一个自我循环时,而且这个自我循环到一个给定值,就可以终止的时候,你就快要考虑递归了。