有时候会因为不注意递归函数中局部变量和全局变量,而导致结果和我们期望的不一致,递归中,在递归中的局部变量和全局变量,可以类似的看成函数调用时传递方式的按值传递(局部变量)和引用传递(全局变量)
局部变量:可以看成两个值,即虽然名字相同,但每次递归时是重新创建的变量,不会覆盖掉上次创建的值;(类似形参与实参不同)
全局变量:每一次对于全局变量进行操作,就会改变它的值。
看下面两个简单的程序,看它们的运行结果
程序一:
#include <stdio.h>
void f()
{
char x;
scanf("%c",&