• 【码蹄集新手村 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. }

  • 相关阅读:
    项目案例 | 丝路新贸易创新中心项目EPC模式下设计BIM技术应用
    Xlinx 裸机编程 Dcahe 问题
    零代码编程:用ChatGPT下载lexfridman的所有播客音频和文本
    荐书 | 为什么喜欢的女生这么难追?
    Linux性能优化实战CPU篇之软中断(三)
    【图像识别-车牌识别】基于BP神经网络求解车牌识别问题含GUI界面和报告
    什么情况?周鸿祎和三六零违约,“零元”甩卖哪吒汽车10亿元股权
    SpringCloud(九)——RabbitMQ简单了解
    瑞芯微RV1126——ffmpeg环境搭建
    SpringBoot 配置文件加载优先级
  • 原文地址:https://blog.csdn.net/m0_64075307/article/details/126410210