C语⾔中的exit与return的区别
1. exit() 结束当前进程/当前程序/,在整个程序中,只要调⽤ exit ,就结束
exit(0)表⽰进程正常退出. 返回 0;
exit(1)表⽰进程⾮正常退出. 返回 1.
2. exit与return的区别
exit()函数与return语句的最⼤区别在于,调⽤exit()函数将会结束当前进程,同时删除⼦进程所占⽤的内存空间,把返回信息传给⽗进程。当exit()中的参数为0时,表⽰正常退出,其他返回值表⽰⾮正常退出,执⾏exit()函数意味着进程结束;⽽return仅表⽰调⽤堆栈的返回,其作⽤是返回函数值,并且退出当前执⾏的函数体,返回到函数的调⽤处,在main()函数中, return n和exit(n)是等价的。
return⽰例1:
#include<stdio.h>
#include<stdlib.h>
int print()
{
int n;
n =0;
printf("使⽤return来结束循环\n");
while(1)
{
if(9==n)
return n;
n++;
}
return0;
}
void main(void)
{
int ret;
printf("调⽤print()函数之前\n");
ret =print();
printf("print()函数的返回值ret=%d\n",ret);
printf("调⽤print()函数之后\n");
return;
}
运⾏结果:
调⽤print()函数之前
使⽤return来结束循环
print()函数的返回值ret=9
在上⾯的代码中,⽤return语句来退出while死循环,在main()函数中print()函数的调⽤处将返回值赋给ret,打印输出后可以看到使⽤return语句成功地返回了9。
exit⽰例2:
#include<stdio.h>
#include<stdlib.h>
void print()
{
int n;
n =0;
c语言和c++区别printf("使⽤exit来结束循环\n");
while(1)
{
if(9==n)
exit(1);
n++;
}
return;
}
void main(void)
{
int ret;
printf("调⽤print()函数之前\n");
ret =print();
printf("print()函数的返回值ret=%d\n",ret);
printf("调⽤print()函数之后\n");
return;
}
运⾏结果:
调⽤print()函数之前
使⽤exit来结束循环
从以上代码可以看出,如果执⾏exit()函数后能够返回到main()函数的调⽤处,那么可以打印出接下来的信息“调⽤print()函数之后”,但是运⾏结果表明在调⽤exit()函数之后没有任何输出,所以执⾏exit()函数之后将直接结束整个程序的运⾏。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论