简单来说,递归就是自己调用自己,如: int abc(...) { if(...) //递归终止条件 { return abc(...); } return 0; } 而迭代是重复一组指令,不断地根据变量的旧值推出新值,如: for(; ; ;) //迭代终止条件 { a = b + c; b = a; c = a; } 递归是在函数内调用本身,迭代是循环求值,不推荐使用递归算法。因为递归调用函数,浪费空间,并且递归太深容易造成堆栈的溢出.递归是自顶向下逐步拓展需求,最后自下向顶运算。即由f(n)拓展到f(1),再由f(1)逐步算回f(n) 迭代是直接自下向顶运算,由f(1)算到f(n)。