exit();不仅是退出语句,这个退出语句还会在退出时返回系统一个值.
这个值会告诉系统程序退出的原因.
exit(0);表明程序正常退出,
而exit(1);表示程序非正常退出.
比如链表中:
...
p=(node)malloc(Node);
if(!p)
{
printf("error!");
exit(1);
}
...
这个当中先给p分配动态内存空间,如果没有分配上(这时p=NULL;),
这个链表显然不能再继续进行下去,
于是退出.
因为是内存不够等原因导致的退出,
并不是真正程序完全运行玩而退出,
此时返回系统"1"这个值,
系统得知就会有相应面对错误结束的反应.
比如某些程序可能改变一些系统值,但程序中间出错退出,
系统就会考虑将这个程序之前改过系统的值先还原,
以防发生其他错误.