您的位置:首页 > 编程语言 > C语言/C++

C语言中的exit函数 以及他与return函数的区别

2018-03-07 15:57 381 查看
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++;
}
return 0;
}

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
调用print()函数之后
在上面的代码中,用return语句来退出while死循环,在main()函数中print()函数的调用处将返回值赋给ret,打印输出后可以看到使用return语句成功地返回了9。

exit示例2:#include <stdio.h>
#include <stdlib.h>
void print()
{
int n;
n = 0;
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()函数之后将直接结束整个程序的运行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: