这两者根本就不一样, 否则c++就不会专门创建这两个关键字了!
至于可否互换,要看楼主的用途了。
先说功能.
exit(exiitCode). 这个表示整个程序终止执行,并且可以返回一个数值给调用这个程序的环境.环境就可以知道这个程序执行的结果.
return 一般是函数返回的结果,这个结果可以是int类型,short类型,bool类型,等所以c++已有的类型和用户自定义的类型,甚至可以规定不返回任何值,直接是void. 这个值是返回给调用这个函数的环境.
综上所属:
exit 这个是返回给调用该"程序"的外界环境.
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()的作用, 在这种情况下,这两者是可以互换的.
如果楼主还有什么不明白,请告诉我.
return是表示函数终止执行返回,函数只是当前的一个子模块,内部用的。
2013-09-28