可能重复:
主函数可以在C++中调用自身吗?
我发现这个问题非常有趣但有点虚幻.问题6.42 C++如何通过Dietel编程"可以在你的系统上主要调用主程序吗?编写一个包含函数main的程序.包括静态局部变量计数并初始化为1.每次调用main时,后递增并打印计数值编译你的程序.会发生什么?
我编写了如下的程序,但是我在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
Run Code Online (Sandbox Code Playgroud)
谢谢
Jam*_*lis 17
如何
main()在C++中递归调用函数是合法的
这不合法.C++语言标准规定"函数main不得在程序中使用"(C++11§3.6.1/ 3).调用该函数是"使用"的一种形式.
任何调用的程序都main()表现出未定义的行为(从技术上讲,这样的程序是不正确的,因为违反的规则是可诊断的语义规则,但如果大多数编译器拒绝该程序,我会感到惊讶).请注意,这不会阻止启动程序的运行时基础结构调用该main()函数.