代码:
int
void
{
for(
{
if(
{
cout
return;
}
else
{
Recursion(
iTestIndex++;
cout
}
}
}
int
{
iTestIndex
Recursion(3);
cout
iTestIndex
Recursion(1);
int
cin
return
}
输出结果:
0
1
0
1
2
0
1
0
1
2
3
0
1
0
1
2
0
1
0
1
2
3
0
1
0
1
分析:(个人理解,也许理解存在误区)
1:此代码主要是用来测试递归对公有数据的影响。会影响公有数据。具体影响,需要依据递归逻辑自行判断。
2:最初纠结于先进后出问题。导致思路始终凌乱。最后发现,一直听其他人说先进后出,但实际究竟如何先进后出?我至今尚未有答案。但,从上述数据发现,其实递归的逻辑,依然是顺序的。所以,在研究他的执行顺序时,可以不考虑什么先后进出问题,直接将其看成一个普通的函数,按照一般逻辑去推论。只不过,逻辑上有些绕。
3:很多知识来自于道听途说。也许最初的理论是正确的,但记忆只言片语,没有前置,没有限定的断章取义不如自行推断。