@[PRC_Dreamwastaken](/user/190485) 如果递归回溯后该变量不再调用原值,那么可以定义为全局变量;如果仍需调用原值,那么需要定义为局部变量。
by CH_mengxiang @ 2022-10-02 21:42:57
@[3wykx](/user/499140) 不是玄学。
一个是全局变量一个是局部变量不一样的。
还是举栗子好说话
~~~
int m;
void f(int x)
{
m=x;
if (x==10) return;
f(x+1);
cout<<m<<" ";
}
int main()
{
f(1);
}
~~~
这份代码中m是全局变量,递归到出口后值是10,并且不再改变,输出是10 10 10...(9个10)
~~~
void f(int x)
{
int m=x;
if (x==10) return;
f(x+1);
cout<<m<<" ";
}
int main()
{
f(1);
}
~~~
这里的m是f()里的局部变量,按照上面的代码,每个f()内x是多少m就是多少,输出是10 9 8 7....1。
本人表达不是很好,希望能理解。
by CH_mengxiang @ 2022-10-02 21:45:20
@[PRC_Dreamwastaken](/user/190485) 明白了
by 3wykx @ 2022-10-03 16:56:45