C++中return 0及void用处

为什么一定要打return0;?我不打的话,编译一样会过啊还有函数前有没有void也一样能过啊还有,main前面为什么用intreturn0及void用处是?谢谢... 为什么一定要打return 0;?
我不打的话,编译一样会过啊
还有函数前有没有void也一样能过啊
还有,main前面为什么用int
return 0及void用处是?
谢谢
展开
 我来答
longinus_dean
2012-03-14 · TA获得超过2282个赞
知道小有建树答主
回答量:1097
采纳率:50%
帮助的人:1524万
展开全部
单单针对void和return来说的话。

在C中,一个函数如果没有返回值也不声明为void类型,那么返回值默认为int。在一些情况,可以return 0也不return 0一样,因为一些编译器简化代码写作负担,没有return 0就假设你return的是0,就是说隐含的帮你做了。关于为什么return的是0我还会说的。

当然,如果你在c++里面声明一个函数但是却不写包括void的任何返回值类型,这样是不对的。一般是个错误,至少也会是个警告,当然了,也说不定会有一些不那么严格的编译器允许编译,但是这样是不建议的,在c++,因为c++没有默认int的规定(相比c语言)。

至于main的返回值的问题,这又是一群国内混蛋问题,实际上包括最经典的那本出版于70年代的《c programming language》,也就是C语言的创始人的那本书,就没有main的返回值是void的形式。那个时候c语言喜欢把main写成无返回值,因为c语言规定一个函数如果无返回值类型,那么返回值类型默认为int。而C++后来规范了C语言,不允许一个函数无返回值(除了构造函数和析构函数),如此之后有些家伙就非要写一个void的返回值类型,实际上这是极其不标准的。

在很多编译器上,例如gcc,intel c,如果你把main写成void的返回值,会直接报错拒绝编译。为什么这也是有典故的,因为从unix系统开始,程序就规定应该有一个返回值。这个返回值可以代表程序是否运行成功,假设返回0就代表程序运行成功无错,返回其他值代表程序运行出现问题,而返回的数值是问题的错误代码。这是一个古老的习俗,在unix/linux下可以用echo $?命令查看上一个运行的程序的返回值。在Windows下甚至有一个名字为EXIT_SUCESS的宏,值为0,你在部分程序可以看到main函数的最后是return EXIT_SUCESS;代表程序运行成功。所以为了这个习俗,也应该避免void返回值的main函数的出现。
家住海边就爱浪113
2015-11-10 · TA获得超过1.7万个赞
知道小有建树答主
回答量:1664
采纳率:94%
帮助的人:82.6万
展开全部
  • return 的作用:

    return返回一个数值的意思就是把return <表达式>后面表达式的值返回给调用他的函数。

  • return的用法如下:

  int sum(int i,int j)

  {

  return i+j;

  printf ("这个语句不会被执行,因为该子函数执行到上面的return语句就无条件结束了");

  }


  main()

  {

  int a=10,b=11,c;

  c=sum(a,b);

  printf("%d",c);

  }


  程序的输出为:

  21


  这个21从何而来呢main函数调用sum(a,b)函数时将a的值赋给i,b的值赋给j,上面说了return i+j;会计算i+j的值也就是结果等于21,并将21带回给调用它的函数,即c=sum(a,b);相当于c=21,这个21 就是由sum(a,b)中的return反回来的。

  • void的作用:  

  void中文翻译为"无类型"。常用在程序编写中对定义函数的参数类型、返回值、函数中指针类型进行声明。

  void的字面意思是"无类型",void *则为"无类型指针",void *可以指向任何类型的数据。

  在C语言中,凡不加返回值类型限定的函数,就会被编译器作为返回整型值处理。但是许多程序员却误以为其为void类型。

  • void的用法就是加在类名前,修饰类名的;

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
超人汉考克一世
2012-03-14 · TA获得超过4983个赞
知道大有可为答主
回答量:2978
采纳率:0%
帮助的人:1514万
展开全部
可以没有return 0程序编译没有问题,但是如果是比赛的话必须有return 0,
return 0及void 就是告诉电脑这个程序正常结束了返回一个0,否则说明没有正常结束
追问
比赛指的是竞赛吗?还是计算机等级考试啊
我没发现输出0啊?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_不落黄昏_
推荐于2018-04-27
知道答主
回答量:6
采纳率:0%
帮助的人:8.8万
展开全部
return是返回值的意思,每个函数理论上来说都可以有一个返回值,如return 0就表示返回一个值为0的返回值,int main()中的int表示返回值是int类型,同理也可以是float类型等,而void 表示该函数没有返回值例如void main()该函数中就不需要加return,如果不加void,则需要用return命令返回一个值,哪怕你不需要用到返回值,也要按格式来,所谓return 0就是这个作用,0这个值一般情况下是没有意义的,之所以返回0而不是其他数只是约定俗成的用法。
当然返回值可以应用的地方有很多,比如有的时候返回-1表示出错,返回0表示正常运行等等,这需要后面的学习来加深了解
追问
我没发现输出0啊?
追答
因为你写的是void,所以虽然有返回值但是没有接收返回值的变量,你可以做个试验,写一个
int test(){……;return 0}
void main(){int a;
a=test;
cout>>a;}把返回值放到a里面,就能看见了
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式