私はプログラミングに本当に慣れていません(私は電子工学と通信エンジニアです)。なぜ一方のプログラムが機能し、もう一方のプログラムが機能しないのか理解できません。
学習を進める前に、再帰関数についてよく理解しておく必要があります。これに関して何か助けていただければ幸いです。
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:これが些細な質問や愚かな質問なら許してください、しかし私はこれに固執していて、これが私が助けを探すことができる最高の場所だと思いました。