C语言中的exit与return的区别

简介: C语言中的exit与return的区别


  1. exit() 结束当前进程/当前程序/,在整个程序中,只要调用 exit ,就结束

exit(0)表示进程正常退出. 返回 0;

exit(1)表示进程非正常退出. 返回 1.

  1. 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

在上面的代码中,用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()函数之后将直接结束整个程序的运行。


相关文章
|
19天前
|
C语言
爱上C语言:分支与循环(分支篇)多个if与if — else if区别
爱上C语言:分支与循环(分支篇)多个if与if — else if区别
|
2月前
|
Java 编译器 C语言
【JavaSE】运算符详解及与C语言中的区别
【JavaSE】运算符详解及与C语言中的区别
51 0
|
23天前
|
存储 搜索推荐 编译器
【C语言】一篇文章深入解析联合体和枚举且和结构体的区别
【C语言】一篇文章深入解析联合体和枚举且和结构体的区别
|
29天前
|
C语言
C语言子函数的使用,子函数放前面和放后面的区别
C语言子函数的使用,子函数放前面和放后面的区别
|
2月前
|
安全 Unix Linux
【C/C++ 字符串】探索C语言之字符串分割函数:strtok和strsep的区别
【C/C++ 字符串】探索C语言之字符串分割函数:strtok和strsep的区别
17 0
|
2月前
|
C语言
C语言——break和continue的区别
C语言——break和continue的区别
14 0
|
2月前
|
存储 C语言
c语言函数指针和指针函数的区别,以及回调函数的使用。
c语言函数指针和指针函数的区别,以及回调函数的使用。
9 0
|
5天前
|
C语言
C语言:内存函数(memcpy memmove memset memcmp使用)
C语言:内存函数(memcpy memmove memset memcmp使用)
|
2天前
|
C语言
pta浙大版《C语言程序设计(第3版)》 习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)
pta浙大版《C语言程序设计(第3版)》 习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)