C允许一个函数调用其本身.这个调用的过程被称作递归.递归有时很难处理 , 而有时却很方便实用 . 当一个函数调用自己时 , 如果编程中没有设定终止递归的条件检测 , 它会无限制地进行递归调用 . 所以需要谨慎调用处理 . 递归一般可以代替循环语句使用 , 有些情况下使用循环语句比较好 , 而有些时候使用递归更有效 . 递归方法虽然使程序优美,但其执行效率却没有循环语句高 . 例题 : 输出如下 : 分析: 首先main()函数调用了up_and_down( ) . 于是up_and_down( )中形式参量 n 的值为1 , 故打印语句 #1 输出了 Level 1 . 然后,由于 n 的数值小于 4 , 所以up_and_down( )使用参数 n+1 即数值 2 调用了 up_and_down( ) .使得 n 在第二级调用中被赋值 2 , 打印语句 #1 输出的是Level 2 . 下面俩次调用分别打印出Level 3和Level 4. 当开始执行第 4 级调用时 , n 的值是 4 , 因此 if 语句条件不满足 . 这时不再继续调用up_and_down( ) 函数 . 第 4 级调用接着执行打印语句 #2 ,即输出 LEVEL 4,因此 n 的值是 4 . 现在函数需要执行 return 语句 , 此时第 4 级调用结束 , 把控制返回给该函数的调用函数 , 也就是第 3 级调用函数 . 第 3 级调用函数中前一个执行过的语句是在 if 语句中进行第 4 级的调用 . 因此 , 它开始继续执行其后续的代码 , 即执行打印语句 #2 , 这将会输出 LEVEL 3 . 当第 3 级调用结束后 , 第 2 级调用函数开始继续执行 , 输出了LEVEL 2 . 以此类推