我对编程真的很陌生(我是一名电子和通信工程师),我无法弄清楚为什么一个程序有效而另一个程序无效。
在进一步学习之前,我想对递归函数有一个很好的理解。我将不胜感激有关此的任何帮助。
我知道 x++ 和 --x 之间的区别。但是在这个程序的上下文中,我认为这两个程序应该以相同的方式运行。但他们没有。
void rec(int x)
{
if(x>0)
rec(x--);
printf("%d",x);
}
int main()
{
rec(4);
_getch();
} /*This doesn't work. And shows a stackoverflow */
void rec(int x)
{
if(x>0)
rec(--x);
printf("%d",x);
}
int main()
{
rec(4);
_getch();
} /*This gives a proper output as expected*/
/*The output is 00123*/
谢谢!
PS:如果这是一个微不足道或愚蠢的问题,请原谅我,但我被困在这个问题上,我认为这是我可以寻求帮助的最佳地方。