c++ 让main函数循环运行大家都是怎么做的?

2025-04-26 19:00:47
推荐回答(5个)
回答1:

因为main函数也可以返回值啊,而且一般来说main函数都写成
int main(...)
这个样子。
main函数的返回值是交给程序调用者的,一般来说返回0代表程序成功运行了。
这样看return main()的意思明白了吧,
“再调用一次main函数,并把下次调用的返回值作为本次的返回值”
由于形成了递归调用,所以会看似循环。

但是,话说回来,这样做不好哦,因为递归的时候,栈空间被不断压缩,终有无法递归下去的时候。建议使用这样的形式:

int main() {
while(1) {
...
}
return 0;
}

回答2:

C的话不像LUA那样,函数也是作为数据的一种类型

C的话你在最后一段运行return main()

只是表示你运行了之前的代码,在运行到return那一行后,需要返回一个值

值是对main()函数求值以后的返回值

所以运行到return的时候会再调用一次main函数,求值以后再把求出的值作为返回值返回

要是要用循环的话主要是用2种方法

1是FOR 2是WHILE

while(条件)
{函数体}

for(初始化循环变量;判断条件;循环后执行的操作)
{函数体}

比如:
int i=0;
while(i<5)
{i++;}
函数体i++会运行5次,第6次因为i=6不满足i<5而使循环中止
要是想让函数无限运行,可以使用
while(1)
{函数体}
因为1是永真的,所以不会退出

for事例:
for(int i=0;i<5;i++)
{......}
效果和while(i<5)那个一样

回答3:

如果是return main()的话,并不是循环,这是递归调用,不推荐这么使用,最好还是使用for、while等等循环语句

如题一定要用 return main()这样的方式实现的话,要注意控制递归次数,因为每次调用main()时,都会向堆栈内压数据的,循环次数过多时,会导致堆栈崩溃(内存不足)

回答4:

补充:c语言里,函数名也是变量,这个变量存放这段函数的返回值,所以“main”是一个变量,int main() ;在机器里理解为:创建了一个整型变量。只不过这个变量的值是通过一段代码算出来的

回答5:

在return眼里,只要返回类型判断正确,才懒得管你return的是变量还是函数呢。。。