顾乔芝士网

持续更新的前后端开发技术栈

递归函数比较实用的解读方法(递归函数的使用方法)

最近再给群里的小伙伴们讲解递归算法,老是有人问怎么解读,什么意思,今天就分享个小技巧出来,免得以为我喜欢藏私。

void main()

{

int a=-1;

a=funA(7);

}

在此运算中,当i>3的时候,程序就会一直执行语句1,和语句2,这个时候堆栈的值为7.6.5.4

当i的数字运算到3的时候,也就是i=3,这个时候整个句子最后的返回值只有3,接下来执行的句2并4出栈的返回值也是4,5出栈返回5,6出栈返回6,7出栈返回7.并赋值给i,所以这个时候a的值为7.

void main()

{

int a=-1;

a=funB(7);

}

在这儿,当i>3的时候还和上面一样,栈的值还是7654,

当i=3的时候,执行34句且返回值为3,当i=4的时候,因为在pc里在第二句及if的分支里面,所以接下来必须跳过else的判断,567也是一样的没有返回值,所以当i=3的时候,因为对i的内存块已提前赋值为3,所以这个时候的a,只能等于3.因为其它值,跳过了对内存赋值这个步骤。

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言