杜安 发表于 2018-12-9 15:39:27

C语言中exit()函数运行结果和预期不一致

我在网上查询到的说法是:
        在子程序中exit(n)
        相当于在main()函数中return(n)
如图:
        exit(1)结果main()得到了4294967295,而不是1
       

请问这是为什么?

ba21 发表于 2018-12-9 18:06:30

你这个提示应该是return 回来的值吧。

exit 是系统级别的。你用cmd
如:
D:\Users\Administrator\Desktop\ctest\Debug>1

D:\Users\Administrator\Desktop\ctest\Debug>echo %errorlevel%
55

试下

杜安 发表于 2018-12-9 23:11:35

ba21 发表于 2018-12-9 18:06
你这个提示应该是return 回来的值吧。

exit 是系统级别的。你用cmd


谢谢,试了一下图上确实是 return;的值
把 if语句下的return; 改成return 0;
main()函数就得到1了
但是还是不懂为什么,
一是if语句下的语句块,在如图的流程中应该没有被执行,return;语句应该不被执行才对
二是为什么改成return 0; 就能得到1的值

杜安 发表于 2018-12-9 23:14:28

ba21 发表于 2018-12-9 18:06
你这个提示应该是return 回来的值吧。

exit 是系统级别的。你用cmd


完了...
我把return 0;改回return ;
又能正常得到 1 了....
玄学...
页: [1]
查看完整版本: C语言中exit()函数运行结果和预期不一致