重複の可能性:
メイン関数はC ++でそれ自体を呼び出すことができますか?
この問題は非常に興味深いものでしたが、少し幻想的でした。質問6.42C++ディーテルによるプログラミング方法「システムでmainを再帰的に呼び出すことができますか?関数mainを含むプログラムを作成します。静的ローカル変数countを含め、1に初期化します。mainが呼び出されるたびにcountの値をポストインクリメントして出力します。 。プログラムをコンパイルします。どうなりますか?
私は以下のようにプログラムを書きましたが、代わりに、それを実行し続けるかのように10回後に再帰を停止させ、41000前後の値で停止します。
私の質問:c ++で再帰的にmain関数を呼び出すことはどのように合法ですか、このプログラムを実行してオーバーフローやメモリ障害などをスタックする必要がありますか?説明してください。
#include <iostream>
using namespace std;
int main()
{
static int count = 0;
count++;
if(count <= 10) {
cout << count << endl;
return main(); //call main
}//end if
system("pause");
return 0;//successful completion
}//end main
ありがとうございました