C++ exit和return区别

请问它俩有啥区别,可互换吗API是什么... 请问它俩有啥区别,可互换吗
API是什么
展开
 我来答
altair7c1
推荐于2016-05-01 · 超过18用户采纳过TA的回答
知道答主
回答量:40
采纳率:0%
帮助的人:47.2万
展开全部

这两者根本就不一样, 否则c++就不会专门创建这两个关键字了!

至于可否互换,要看楼主的用途了。


先说功能.

  1. exit(exiitCode). 这个表示整个程序终止执行,并且可以返回一个数值给调用这个程序的环境.环境就可以知道这个程序执行的结果. 

  2. return 一般是函数返回的结果,这个结果可以是int类型,short类型,bool类型,等所以c++已有的类型和用户自定义的类型,甚至可以规定不返回任何值,直接是void. 这个值是返回给调用这个函数的环境.

综上所属:

  1. exit 这个是返回给调用该"程序"的外界环境.

  2. return 这个是返回给调用该"函数"的外界环境.



有点抽象吗? 我想是的, 所以我举个例子.

先看Code1.

int Fun()
{
     return 3;  // 这里不可以改成exit(3),如果改了,Code会解释.
}
int main()
{
    int i = Fun(); // 这里 i就直接等于Fun()函数返回的结果3.
    return 0; // 这里main()的return表示返回给外界.
}

再看看Code2:

int Fun()
{
    exit ( 3 );  // 函数执行到这里的时候就终止程序并且返回3.

    return 2; // 如果不添加这句话的话,会编译出错, 因为Fun()函数要求返回int型变量, 上一行exit(3)并不是"函数的"返回值.
}
int main()
{
   int i = Fun(); // Fun()函数还没有执行完就退出程序了, 所以i不会被赋予任何值.
   return 0;  // 程序根本就不会执行到这里来.
}


以上是说明exit和return两者不可以呼唤的地方.


下面就来说说两者可以互换的地方, 因为exit()主要是返回给调用程序外部环境的, 而一般来说,c++的程序都是从main函数开始的, 在以下情况我认为是一致的:

Code3:

int main()
{
   return 0;
}

调用Code3这个程序返回给外部的是0.

Code4:

void main()

{

   exit( 0 );

}

调用Code4这个程序返回给外部的结果仍然是0;


这两者的效果几乎相同, 但是还是有细微不同的地方, 一般是在大型项目才会考虑的.楼主现在可以暂时不用关心这个.

因为main()函数也是函数, 所以它的return(), 在某种程度上相当于exit()的作用, 在这种情况下,这两者是可以互换的.



如果楼主还有什么不明白,请告诉我.











志远823
推荐于2018-04-30 · TA获得超过2296个赞
知道小有建树答主
回答量:913
采纳率:66%
帮助的人:1180万
展开全部
exit()就是退出,传入的参数是程序退出时的状态码,0表示正常退出,其他表示非正常退出,一般都用-1,给外部程序用的。

return是表示函数终止执行返回,函数只是当前的一个子模块,内部用的。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hu0904
2013-09-28 · TA获得超过222个赞
知道小有建树答主
回答量:510
采纳率:0%
帮助的人:461万
展开全部
return 是函数返回 将进程处理权返回调用方 exit是调用库函数库函数 调用API函数 结束进程
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-28
展开全部
两回事,意义完全不同
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式