这里的return 0 可以删除,如果不删除也可以,作用是什么呢?

greatlycool 2008-10-14 10:54:52
#include<stdio.h>
int main(void)
{
int n;
int factorial(int n);
scanf("%d",&n);
printf("%d\n",factorial(n));
/* return 0; can be deleted */
}
int factorial(int n)
{
int i,fact=1;
for(i=1;i<=n;i++)
fact=fact*i;
return fact;
}
...全文
268 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
iambic 2008-10-17
  • 打赏
  • 举报
回复
C里面需要加上。在旧编译器里,不加上的话,返回一个不确定的值。
C++里面,可以不加。不加返回0。
hctjdx 2008-10-17
  • 打赏
  • 举报
回复
return 0正常退出,并把权限交还给系统。
没有的话,系统会自动默认加上return 0
Longinc 2008-10-16
  • 打赏
  • 举报
回复
非void当然要返回了,return 0 表示程序正常结束
  • 打赏
  • 举报
回复
函数是int返回类型的时候,一般都return 0;

通常情况下用return 0;来表示函数正确结束返回,用return -1;或者别的值来表示出错退出等。

在函数调用返回的时候经常这么用。
nicholas101 2008-10-16
  • 打赏
  • 举报
回复
……
once_and_again 2008-10-16
  • 打赏
  • 举报
回复
int main(void)
xianyuxiaoqiang 2008-10-16
  • 打赏
  • 举报
回复
return 把值返回给调用者
main函数的调用者是系统,return把值返回给系统。
普通函数就要看它在哪里被调用,比如:
int f()//返回值为int型
{
return 1;//把1返回给调用它的地方
}
int main()//返回值为int型
{
int a = f();//f()返回1到此处,a获得值1
return a;//把a的值返回给系统
}
xianyuxiaoqiang 2008-10-16
  • 打赏
  • 举报
回复
return 把值返回给调用者
main函数的调用者是系统,return把值返回给系统。
普通函数就要看它在哪里被调用,比如:
int f()//返回值为int型
{
return 1;//把1返回给调用它的地方
}
int main()//返回值为int型
{
int a = f();//f()返回1到此处,a获得值1
return a;//把a的值返回给系统
}
kiffa 2008-10-16
  • 打赏
  • 举报
回复
In C++:

1,如果函数的返回类型不是void,那么函数中的单独一个return语句, 其后不接任何表达式,这种行为是未定义的。

2,如果main函数里没有return语句,编译器会自动把它处理成return 0,两者是完全等价的。

3,如果在非main以及非void函数里没有return语句,那么这个函数的返回值也是未定义的。
dumeifang 2008-10-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ysuliu 的回复:]
按照新的C++的标准,main()函数需要一个int的返回值,0代表正常退出,所以一般加return 0;
旧的C标准是没有这个限制的,所以有void main(void)的情况,也就不存在return 0;的问题了。
关于main()的返回值不同的编译器可能结果是不同的,有的编译器报错,有的warning,有的什么问题没有,不过按照标准应该是返回一个int值的。
[/Quote]

我最近写的程序不是int main会提示应该返回一个整型值。
xtdumpling 2008-10-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 fllwt 的回复:]
感觉和汇编的ret一样的功能 把权限交给操作系统 也就是返回
[/Quote]
感觉一样,其实对于void的函数,没有return,也有汇编的ret的
zclever 2008-10-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 fllwt 的回复:]
感觉和汇编的ret一样的功能 把权限交给操作系统 也就是返回
[/Quote]
对,这个0是要返回给操作系统的
fllwt 2008-10-14
  • 打赏
  • 举报
回复
感觉和汇编的ret一样的功能 把权限交给操作系统 也就是返回
Dan_M 2008-10-14
  • 打赏
  • 举报
回复
mian()函数你定义的返回值是int,所以return 0;是必要的
huhaihong 2008-10-14
  • 打赏
  • 举报
回复
返回0表示没有错误
要删的话,要写成void main()
ysuliu 2008-10-14
  • 打赏
  • 举报
回复
按照新的C++的标准,main()函数需要一个int的返回值,0代表正常退出,所以一般加return 0;
旧的C标准是没有这个限制的,所以有void main(void)的情况,也就不存在return 0;的问题了。
关于main()的返回值不同的编译器可能结果是不同的,有的编译器报错,有的warning,有的什么问题没有,不过按照标准应该是返回一个int值的。
jzd8000 2008-10-14
  • 打赏
  • 举报
回复
程序正常推出

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧