【发布时间】:2014-12-06 03:59:37
【问题描述】:
这似乎是一个愚蠢的问题,但我只是不明白这些功能之间的区别。将这两个都设置为 0,为什么 xxx() 打印 0,2,4,6,4,2,0 而 xxy() 打印常规的 0,1,2,3,4,5。我要问的问题是,为什么 xxx() 在达到允许的最大值 '6' 后会减少
void xxx(int N)
{
cout << N;
if (N < 5)
{
xxx(N + 2);
cout << N;;
}
}
void xxy(int N)
{
cout << N;
if (N < 5)
xxy(N + 1);
}
int main()
{
xxx(0);
xxy(0);
}
【问题讨论】:
-
您可能想检查递归的工作原理。更好地理解。
-
@learningToCode 你的意思是基础知识?我错过了一些基本的东西吗?
-
使用调试器逐行执行代码。它将帮助您更好地了解正在发生的事情。
-
哦,所以递归函数会一直运行,直到该值恢复为该整数的原始值。我想我明白了。谢谢