关于return 0的一点疑惑

时间:2021-09-04 19:50:58
#include <iostream>
using namespace std;
int main()
{    int a,b; 
   cin >> a >> b;  
   cout << a+b << endl;  
   return 0;
}


return 0;有什么用啊?好像有它没它都行。(还有return 1又有什么用啊?)
麻烦大家给我解答下,谢谢!

65 个解决方案

#1


main返回0表示本程序正常结束,返回非0值表示异常或者错误。
有的时候操作系统会检查这个返回值来做一些判断。

#2


比如:你可以写一个脚本(windows里的bat,linux的shell),首先调用这个程序,根据他的返回值来决定下一步的动作。
对于这种简单的练习程序来说,main的返回值确实没什么太大用处,返回0就行了。

#3


就算你没写,也会自动帮你加上吧。(我老师是这么说的)

#4


main函数的返回值,返回给操作系统的

#5


返回值放在寄存器里,系统可以获得,判断程序执行状态

#6


Bruce Eckel都不写的,只是学习代码的话关系不大

#7


这个数值时返回给操作系统的。告诉操作系统你的应用程序是否正常退出。
操作系统可以根据你的程序是否正常退出决定下一步做什么?
比如如果是异常退出那就重新运行这个应用程序,如果正常退出,就继续运行下一个程序。

大概就是这个意思,不知道说清楚了没有 ?

#8


返回0代表程序正常退出,否则是异常退出。

#9


main返回0表示本程序正常结束,返回非0值表示异常或者错误。

#10


1楼正解。

#11


引用 1 楼 *mill 的回复:
main返回0表示本程序正常结束,返回非0值表示异常或者错误。
有的时候操作系统会检查这个返回值来做一些判断。

+1

#12


帮顶!!!

#13


向操作系统返回程序执行状态,0表示正常结束,非0表示异常

#14


你把main当做一个普通函数去理解,因为你定义的是返回值是int所以你应该给它的调用者一个返回值

#15


程序正常退出

#16


使用GCC编译器如果使用int main或main,那么不写return 语句的话,
在程序执行完后控制台会显示
Shell return 10 等(值不一定)
如果加了return语句,那么则无此提示。

#17


正解  顺便接分

#18


一般情况下,是用不到这个返回值的

但是,程序可能不是被正常关闭的,或是出了其它问题,这时候,返回值就不是0了
系统可以检测,返回值是否是0,不是0,就要报告错误

简单的来说,是给系统用的,

#19


    从另一个角度上可以理解一下,main函数也是函数呀,其他的函数都可以直接或间接通过main函数调用,可是谁来调用main函数呢,当然是操作系统了(在你双击可执行文件时),那main函数的返回值谁来接收呢,当然还是操作系统了,操作系统接收了main函数的返回值用不用呢,怎么用?那是操作系统的问题了。
    如果真要用的话,你完全可以写一个批处理文件,在执行了你的程序后用系统变量errorlevel来获得你的main函数的返回值。

#20


在MAIN中 除了RETURN 0表示程序正常退出 返回其他值在不同操作系统中有不同意义

#21


返回0表示本程序正常结束,返回非0值表示异常

#22


原来这个return是给操作系统用的啊,学习了。

#23


加上返回是告诉操作系统程序运行的结果情况,0正常,其他数表示某些错误代码

#24


批处理中调用时判断errorlevel用
计算机组成原理→ DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构……

#25


告诉系统改程序执行完了,正常退出!
return 1的话就是别的意思了!

#26


返回0给操作系统,报告程序顺利完成。对你的这个代码,要不要都可以。

#27


反正不是void类型就得加上return,可以不用写0,直接写成:return ;

#28


return 0;正常退出。
return 1是非正常退出。这是给系统的,跟程序无关

#29


return 0;正常退出。
return 1是非正常退出。这是给系统的,跟程序无关

#30


你用不少系统用的上,稍微了解下shell编程就明白了。

#31


main函数的返回值是给操作系统用的 反映返回时的状态 

一般来说  return 0表示正常返回 

#32


对啊,一般我们用不到

#33


该回复于2010-06-21 13:51:11被版主删除

#34


引用 27 楼 chumeng1hao 的回复:
反正不是void类型就得加上return,可以不用写0,直接写成:return ;

真的吗?

#35


还有,谢谢大家的解答。谢谢了!

#36


#include <iostream>
using namespace std;
int main()
{ int a,b;  
  cin >> a >> b;   
  cout << a+b << endl;   
  return 0;
}

return 0 只是代表一个返回值而已,意思是说main函数执行完了返回的是一个你设定的0,如果你写成return 100;就是时候返回值是100而已。
int main()是表示一个有返回值并且返回值是一个整形的函数,所以函数体里面就必须要加上return X(其中X表示你想要该函数返回的值,而且返回值必须是int型的,因为你定义函数的时候就写的是int main()),如果你写成void main()那在函数体里面你就不用写return了 因为void关键字就是说无返回值的意思那么自然也就不需要return 0;这句了。

#37


深究的话,也挺好的,只是像这么简单的程序应该没有看这么深的必要,只是一些习惯吧

#38


主要原因是 int main(){}
main函数的主要函数是int 类型的,所以要有一个返回值,且是int类型的
其实这里只要返回是int类型的就行的了
return 0;
return 1;
return 100;
……等都是等价的

#39


学习了。

#40


在main 前加上void就可以不用返回值了,

#41


是返回给操作系统的。

#42


引用 38 楼 xia777xia 的回复:
主要原因是 int main(){}
main函数的主要函数是int 类型的,所以要有一个返回值,且是int类型的
其实这里只要返回是int类型的就行的了
return 0;
return 1;
return 100;
……等都是等价的

错,这个值许多时候是有用的,特别是Linux/Unix下。Shell编程中经常会用到这个值,来判断上一次指令运行的结果是成功还是失败。一般,成功是0,失败是1。指令“echo $?”可以查看上一次指令运行结果。

#43


该回复于2010-12-02 11:44:53被版主删除

#44


拿分~

#45


#include <iostream>
using namespace std;
int main()
{ int a,b;  
  cin >> a >> b;  
  cout << a+b << endl;  
  return 0;
}

return 0 只是代表一个返回值而已,意思是说main函数执行完了返回的是一个你设定的0,如果你写成return 100;就是时候返回值是100而已。
int main()是表示一个有返回值并且返回值是一个整形的函数,所以函数体里面就必须要加上return X(其中X表示你想要该函数返回的值,而且返回值必须是int型的,因为你定义函数的时候就写的是int main()),如果你写成void main()那在函数体里面你就不用写return了 因为void关键字就是说无返回值的意思那么自然也就不需要return 0;这句了。

学习了!~接分。

也就是SHELL编程里面用的比较多的。

#46


引用 38 楼 xia777xia 的回复:
主要原因是 int main(){}
main函数的主要函数是int 类型的,所以要有一个返回值,且是int类型的
其实这里只要返回是int类型的就行的了
return 0;
return 1;
return 100;
……等都是等价的


学习

#47


系统会用到的

#48


讨论的热火朝天的,main函数也外乎是一个函数而已,而这个函数是一个需要返回int类型的函数。
return 10000都一样。

#49


呵呵,平时都觉得应该写的,没有怎么深入考虑过呢

#50


在批处理里面用
比如你的程序名叫a.exe
b.bat的内容为
@echo off
a.exe
if errorlevel 1 goto ONE
if errorlevel 0 goto ZERO
goto END
:ONE
echo ONE
goto END
:ZERO
echo ZERO
:END
在cmd窗口里面运行b.bat看看吧

#1


main返回0表示本程序正常结束,返回非0值表示异常或者错误。
有的时候操作系统会检查这个返回值来做一些判断。

#2


比如:你可以写一个脚本(windows里的bat,linux的shell),首先调用这个程序,根据他的返回值来决定下一步的动作。
对于这种简单的练习程序来说,main的返回值确实没什么太大用处,返回0就行了。

#3


就算你没写,也会自动帮你加上吧。(我老师是这么说的)

#4


main函数的返回值,返回给操作系统的

#5


返回值放在寄存器里,系统可以获得,判断程序执行状态

#6


Bruce Eckel都不写的,只是学习代码的话关系不大

#7


这个数值时返回给操作系统的。告诉操作系统你的应用程序是否正常退出。
操作系统可以根据你的程序是否正常退出决定下一步做什么?
比如如果是异常退出那就重新运行这个应用程序,如果正常退出,就继续运行下一个程序。

大概就是这个意思,不知道说清楚了没有 ?

#8


返回0代表程序正常退出,否则是异常退出。

#9


main返回0表示本程序正常结束,返回非0值表示异常或者错误。

#10


1楼正解。

#11


引用 1 楼 *mill 的回复:
main返回0表示本程序正常结束,返回非0值表示异常或者错误。
有的时候操作系统会检查这个返回值来做一些判断。

+1

#12


帮顶!!!

#13


向操作系统返回程序执行状态,0表示正常结束,非0表示异常

#14


你把main当做一个普通函数去理解,因为你定义的是返回值是int所以你应该给它的调用者一个返回值

#15


程序正常退出

#16


使用GCC编译器如果使用int main或main,那么不写return 语句的话,
在程序执行完后控制台会显示
Shell return 10 等(值不一定)
如果加了return语句,那么则无此提示。

#17


正解  顺便接分

#18


一般情况下,是用不到这个返回值的

但是,程序可能不是被正常关闭的,或是出了其它问题,这时候,返回值就不是0了
系统可以检测,返回值是否是0,不是0,就要报告错误

简单的来说,是给系统用的,

#19


    从另一个角度上可以理解一下,main函数也是函数呀,其他的函数都可以直接或间接通过main函数调用,可是谁来调用main函数呢,当然是操作系统了(在你双击可执行文件时),那main函数的返回值谁来接收呢,当然还是操作系统了,操作系统接收了main函数的返回值用不用呢,怎么用?那是操作系统的问题了。
    如果真要用的话,你完全可以写一个批处理文件,在执行了你的程序后用系统变量errorlevel来获得你的main函数的返回值。

#20


在MAIN中 除了RETURN 0表示程序正常退出 返回其他值在不同操作系统中有不同意义

#21


返回0表示本程序正常结束,返回非0值表示异常

#22


原来这个return是给操作系统用的啊,学习了。

#23


加上返回是告诉操作系统程序运行的结果情况,0正常,其他数表示某些错误代码

#24


批处理中调用时判断errorlevel用
计算机组成原理→ DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构……

#25


告诉系统改程序执行完了,正常退出!
return 1的话就是别的意思了!

#26


返回0给操作系统,报告程序顺利完成。对你的这个代码,要不要都可以。

#27


反正不是void类型就得加上return,可以不用写0,直接写成:return ;

#28


return 0;正常退出。
return 1是非正常退出。这是给系统的,跟程序无关

#29


return 0;正常退出。
return 1是非正常退出。这是给系统的,跟程序无关

#30


你用不少系统用的上,稍微了解下shell编程就明白了。

#31


main函数的返回值是给操作系统用的 反映返回时的状态 

一般来说  return 0表示正常返回 

#32


对啊,一般我们用不到

#33


该回复于2010-06-21 13:51:11被版主删除

#34


引用 27 楼 chumeng1hao 的回复:
反正不是void类型就得加上return,可以不用写0,直接写成:return ;

真的吗?

#35


还有,谢谢大家的解答。谢谢了!

#36


#include <iostream>
using namespace std;
int main()
{ int a,b;  
  cin >> a >> b;   
  cout << a+b << endl;   
  return 0;
}

return 0 只是代表一个返回值而已,意思是说main函数执行完了返回的是一个你设定的0,如果你写成return 100;就是时候返回值是100而已。
int main()是表示一个有返回值并且返回值是一个整形的函数,所以函数体里面就必须要加上return X(其中X表示你想要该函数返回的值,而且返回值必须是int型的,因为你定义函数的时候就写的是int main()),如果你写成void main()那在函数体里面你就不用写return了 因为void关键字就是说无返回值的意思那么自然也就不需要return 0;这句了。

#37


深究的话,也挺好的,只是像这么简单的程序应该没有看这么深的必要,只是一些习惯吧

#38


主要原因是 int main(){}
main函数的主要函数是int 类型的,所以要有一个返回值,且是int类型的
其实这里只要返回是int类型的就行的了
return 0;
return 1;
return 100;
……等都是等价的

#39


学习了。

#40


在main 前加上void就可以不用返回值了,

#41


是返回给操作系统的。

#42


引用 38 楼 xia777xia 的回复:
主要原因是 int main(){}
main函数的主要函数是int 类型的,所以要有一个返回值,且是int类型的
其实这里只要返回是int类型的就行的了
return 0;
return 1;
return 100;
……等都是等价的

错,这个值许多时候是有用的,特别是Linux/Unix下。Shell编程中经常会用到这个值,来判断上一次指令运行的结果是成功还是失败。一般,成功是0,失败是1。指令“echo $?”可以查看上一次指令运行结果。

#43


该回复于2010-12-02 11:44:53被版主删除

#44


拿分~

#45


#include <iostream>
using namespace std;
int main()
{ int a,b;  
  cin >> a >> b;  
  cout << a+b << endl;  
  return 0;
}

return 0 只是代表一个返回值而已,意思是说main函数执行完了返回的是一个你设定的0,如果你写成return 100;就是时候返回值是100而已。
int main()是表示一个有返回值并且返回值是一个整形的函数,所以函数体里面就必须要加上return X(其中X表示你想要该函数返回的值,而且返回值必须是int型的,因为你定义函数的时候就写的是int main()),如果你写成void main()那在函数体里面你就不用写return了 因为void关键字就是说无返回值的意思那么自然也就不需要return 0;这句了。

学习了!~接分。

也就是SHELL编程里面用的比较多的。

#46


引用 38 楼 xia777xia 的回复:
主要原因是 int main(){}
main函数的主要函数是int 类型的,所以要有一个返回值,且是int类型的
其实这里只要返回是int类型的就行的了
return 0;
return 1;
return 100;
……等都是等价的


学习

#47


系统会用到的

#48


讨论的热火朝天的,main函数也外乎是一个函数而已,而这个函数是一个需要返回int类型的函数。
return 10000都一样。

#49


呵呵,平时都觉得应该写的,没有怎么深入考虑过呢

#50


在批处理里面用
比如你的程序名叫a.exe
b.bat的内容为
@echo off
a.exe
if errorlevel 1 goto ONE
if errorlevel 0 goto ZERO
goto END
:ONE
echo ONE
goto END
:ZERO
echo ZERO
:END
在cmd窗口里面运行b.bat看看吧