2011-07-26 61 views
3

我想弄清楚你称之为引用自身的函数。这是否被称为递归?或者它只是一个自我引用功能?你叫什么调用自己的函数(这叫做递归)?

+0

如果它从未*调用*本身,那么我会认为它只是愚蠢的代码;-)否则,请参阅答案。递归函数是*自己调用的函数。直接递归是调用*本身的*行为。因此,如果没有任何东西*被称为*(但函数,称为匿名函数,仍然有其自身的参考),那么... ;-) – 2011-07-26 18:11:42

回答

2

正如您怀疑的那样,调用自身的函数称为“递归”。

0

递归或自递归是我通常所说的。只要小心一点,这样你就不会被困在一个叫自己的循环中,最终吹出堆栈。

还要记住变量的范围。如果需要在所有递归级别共享变量(或将它们声明在函数之外),则声明变量为静态变量。如果需要从一个级别传递到下一个级别的特定信息,则将变量传递给该函数。最后,在函数中使用局部变量来保持当前递归级别的状态。局部变量将为您调用的每个递归级别在堆栈上创建一个副本,然后回退到解开每个递归的先前值。

+0

我认为OP只是钓鱼作业/在线测试问题答案: ) –