在递归函数中,变量应该声明为局部变量还是静态变量?
提前致谢...
答案 0 :(得分:7)
这取决于。静态变量意味着您有一个在所有递归调用中共享的变量。普通局部变量意味着每个递归调用都会获得自己的变量副本。你需要选择一个对你正在做的事情有意义的那个。
全局就像一个静态局部变量(所有调用共享一个变量),但它对应用程序的其余部分也是可见的。
答案 1 :(得分:2)
仅限本地。
可以通过每次调用传递变量的方式定义递归方法。并且使用先前的递归返回变量计算最终返回值。例如返回rec(i-1)+rec(i-2)
如果使用全局变量,如果并行运行两次或多次递归,则变量可能会混乱。
我建议你编写你的递归来使用局部变量和params。
答案 2 :(得分:0)
使用局部变量,你必须传递它并随每次递归调用返回。
可以从递归的任何级别内到达静态和全局变量。
答案 3 :(得分:0)
你可以使用上面提到的任何一个但是一切都取决于你应该用递归的方式!!
答案 4 :(得分:0)
这取决于你想做什么。通常我会避免静电。