网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

c语言递归函数有返回吗 c语言中递归函数

c语言递归函数没有return怎样返回呢?

当n==1时就返回了, 虽然没有显式地写return

创新互联2013年开创至今,是专业互联网技术服务公司,拥有项目网站制作、网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元白云做网站,已为上家服务,为白云各地企业和个人服务,联系电话:13518219792

if(n==1) 成立时执行printf语句, 执行完后遇到move函数的右 } 就返回了.

菜鸟求助---C语言递归函数返回值

...

从汇编的角度来说,函数

返回值

,其实就是函数返回后,cpu中eax的值。在C语言等语方中,在函数中写了返回语句,那么函数在返回时,就会对eax作最后赋值。

int

find(int

a,int

b)

{

if(b=0)

return

100;

else

find(--a,--b);/这里为什么不用返回值?/

}

//为什么不用返回值呢,因为此程序进行递归后,在最初返回时,eax的值被赋值为100,而之后的回溯过程中,程序并没有修改eax的值,所以到最后,返回值还是100。

这种写法是会出问题的。应写成。

int

find(int

a,int

b)

{

if(b=0)

return

100;

else

return

find(--a,--b);

}

为什么了修改之后就出错呢,如以上所说,这很好理解,因为程序最后调用了printf()。eax中的值是printf()的返回值。若把他当成find()的返回值自然是出错了。

c语言递归函数一定要有return吗?为什么?

递归的三个条件就是:

1,存在递归调用

2,有退出条件

3,有return值。

这是因为递归调用按照栈的方式,在没有达到退出条件的时候后面的函数也就无法执行return语句,这样就实现了每一层的return语句与这层函数相对应。


当前题目:c语言递归函数有返回吗 c语言中递归函数
分享路径:http://bjjierui.cn/article/ddposih.html

其他资讯