玄学问题求大佬求解!!!

P3956 [NOIP2017 普及组] 棋盘

@[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


|