このベロプログラムを実行すると、5
無限に印刷されます。なんで?デクリメントが発生していないためですか、それともデクリメントが発生する前に関数呼び出しが発生していますか?
別の方法で作成してみましたが、fun(--n)
正しい答えが得られました。しかし、なぜそれが機能しないのfun(n--)
ですか?
void fun(int n)
{
if(!n)
{
cout << n << " " << endl;
}
else
{
cout << n << " "<<endl;
fun(n--);
}
}
int main()
{
int n = 5;
fun(n);
system("pause");
return 0;
}