请看下面的代码,不是说递归函数不用声明吗,怎么还声明了。求解释。
发布网友
发布时间:2024-10-09 20:27
我来回答
共1个回答
热心网友
时间:2024-11-04 04:33
你的疑惑源于对递归函数的误解。
递归函数在调用自身时,无需额外声明,这是因为递归函数已经在当前作用域内定义过。但是,当其他函数调用递归函数时,且递归函数的定义位于调用点之后,这时就需要进行声明。
以你的代码为例,hanoi函数在main函数之后定义,因此需要声明。move函数同样在hanoi函数之后,故也需要声明。如果我们将hanoi函数的定义提前到main函数之前,同时将move函数定义提前到hanoi函数之前,此时就无需再进行声明。
关键在于递归函数的定义位置,以及调用函数与被调用函数在程序中的相对位置。理解这一点,就能清晰地认识到递归函数声明的必要性。