• 【码蹄集新手村 600 题】判断俩个矩阵是否相等,以及 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. //return示例1:
    2. int print()
    3. {
    4. int n;
    5. n = 0;
    6. printf("使用return来结束循环\n");
    7. while(1)
    8. {
    9. if(9==n)
    10. return n;
    11. n++;
    12. }
    13. return 0;
    14. }
    15. void main(void)
    16. {
    17. int ret;
    18. printf("调用print()函数之前\n");
    19. ret = print();
    20. printf("print()函数的返回值ret=%d\n",ret);
    21. printf("调用print()函数之后\n");
    22. return ;
    23. }
    24. /*运行结果:
    25. 调用print()函数之前
    26. 使用return来结束循环
    27. print()函数的返回值ret=9
    28. 调用print()函数之后
    29. 在上面的代码中,用return语句来退出while死循环,
    30. 在main()函数中print()函数的调用处将返回值赋给ret,
    31. 打印输出后可以看到使用return语句成功地返回了9。*/

    • exit 示例:

    1. exit示例2
    2. void print()
    3. {
    4. int n;
    5. n = 0;
    6. printf("使用exit来结束循环\n");
    7. while(1)
    8. {
    9. if(9==n)
    10. exit(1);
    11. n++;
    12. }
    13. return ;
    14. }
    15. void main(void)
    16. {
    17. int ret;
    18. printf("调用print()函数之前\n");
    19. ret = print();
    20. printf("print()函数的返回值ret=%d\n",ret);
    21. printf("调用print()函数之后\n");
    22. return ;
    23. }
    24. /*运行结果:
    25. 调用print()函数之前
    26. 使用exit来结束循环从以上代码可以看出,
    27. 如果执行exit()函数后能够返回到main()函数的调用处,
    28. 那么可以打印出接下来的信息“调用print()函数之后”,
    29. 但是运行结果表明在调用exit()函数之后没有任何输出,
    30. 所以执行exit()函数之后将直接结束整个程序的运行。*/

    参考代码:

    1. #include
    2. using namespace std;
    3. int main( )
    4. {
    5. int arr1[4][4] = {0};
    6. int arr2[4][4] = {0};
    7. for(int i = 0;i < 4;i++)
    8. {
    9. for(int j = 0;j < 4;j++)
    10. {
    11. cin >> arr1[i][j];
    12. }
    13. }
    14. for(int i = 0;i < 4;i++)
    15. {
    16. for(int j = 0;j < 4;j++)
    17. {
    18. cin >> arr2[i][j];
    19. }
    20. }
    21. for(int i = 0;i < 4;i++)
    22. {
    23. for(int j = 0;j < 4;j++)
    24. {
    25. //cin >> arr2[i][j];
    26. if(arr1[i][j] != arr2[i][j])
    27. {
    28. cout << "NO" << endl;
    29. exit(0);//参数为 0 表示程序正常退出
    30. }
    31. }
    32. }
    33. cout << "YES" << endl;
    34. return 0;
    35. }

  • 相关阅读:
    刷题记录:牛客NC24083Greedy Gift Takers
    OpenHarmony创新赛丨报名倒计时,超强秘籍带你直通大奖!
    telnet 命令演示 以及 Dubbo常见错误解决方法
    23062C++&QT day2
    权限系统中的数据权限就该这么设计,yyds
    华为云云耀云服务器L实例评测|华为云耀云L搭建zerotier服务测试
    gcc/g++使用,自动化工具(企业使用)
    数据库MySQL----(三)数据库进阶学习
    【软件测试】毕业失眠的夜晚,望着天花板呆住了 到底该何去何从......
    计算机组成原理(4)-----Cache的原理及相关知识点
  • 原文地址:https://blog.csdn.net/m0_64075307/article/details/126410210