C++ exit和return区别

 我来答
啊湿烈糜3
2013-09-29 · TA获得超过262个赞
知道答主
回答量:178
采纳率:98%
帮助的人:59.6万
展开全部

这两者根本就不一样, 否则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()的作用, 在这种情况下,这两者是可以互换的.



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

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式