1.递归调用每次都有自己的变量,第一级的n和第二级的n不相同,所以递归为每级创建了单独的变量,但是这些变量名都叫n(举例叫n),但是他们的值不相同
借用图:
2.函数调用每次都会返回一次,函数调用以后,控制权会被传回上一级进行递归。程序必须按顺序往上一级递归
3.递归函数在调用函数前面的语句,都必须按被调函数的顺序输出执行。(重点)
4.递归函数在调用函数后面的语句 都要按照被调函数相反的顺序执行输出(重点)
5.每级递归都有自己的变量,但并不会copy函数的代码。你所写的程序除了按照顺序来执行外,递归函数调用还会重头再执行一遍,递归调用就特别类似于一个循环语句,而且事实上循环语句有时候可以代替递归,递归函数也可以代替循环
6.递归函数经常通过if等判断语句来终止递归调用