更改

跳到导航 跳到搜索
删除7字节 、 2020年12月12日 (六) 23:08
第1,341行: 第1,341行:  
尾递归的意义在于,当进行尾递归调用(或任何尾调用)时,调用者的返回位置不需要保存在调用栈上,当递归调用返回时,它将直接在先前保存的返回位置上进行分支。因此,在识别尾调用这一特性的语言中,尾部递归既节省了空间又节省了时间。
 
尾递归的意义在于,当进行尾递归调用(或任何尾调用)时,调用者的返回位置不需要保存在调用栈上,当递归调用返回时,它将直接在先前保存的返回位置上进行分支。因此,在识别尾调用这一特性的语言中,尾部递归既节省了空间又节省了时间。
   −
==Order of execution==
+
==执行顺序==
执行顺序
+
 
 
In the simple case of a function calling itself only once, instructions placed before the recursive call are executed once per recursion before any of the instructions placed after the recursive call. The latter are executed repeatedly after the maximum recursion has been reached. Consider this example:
 
In the simple case of a function calling itself only once, instructions placed before the recursive call are executed once per recursion before any of the instructions placed after the recursive call. The latter are executed repeatedly after the maximum recursion has been reached. Consider this example:
   −
在一个函数只调用自己一次的简单情况下,在递归调用之前放置的指令在递归调用之后放置的任何指令之前,每次递归都会被执行一次。后者在达到最大递归后会被重复执行。考虑这个例子:
+
在一个函数只调用自己一次的简单情况下,放置在递归调用之前的指令在每次递归都会被执行一次,且比放置在递归调用之后任何指令更早执行。后者在达到最大递归后会才被重复执行。考虑这个例子:
===Function 1===
+
 
 +
===函数1===
 
<syntaxhighlight lang="c">
 
<syntaxhighlight lang="c">
 
void recursiveFunction(int num) {
 
void recursiveFunction(int num) {
第1,357行: 第1,358行:  
[[Image:Recursive1.svg|350px]]
 
[[Image:Recursive1.svg|350px]]
   −
===Function 2 with swapped lines===
+
===函数 2 两行代码对调===
 
<syntaxhighlight lang="c">
 
<syntaxhighlight lang="c">
 
void recursiveFunction(int num) {
 
void recursiveFunction(int num) {
370

个编辑

导航菜单