发现了一个现象,无法理解,下面三个程序,由于函数的返回方式不同导致了i值的不同;
#include
#include
#include
#include
int main()
{
int i;
pid_t pid;
for(i=0;i<2;)
{
pid=vfork();
printf("i_for=%d\n",i);
i++;
}
printf("i_end=%d\n\n",i);
return 0;/*此处代码用一下三种情况:(1)"return 0;"(2)删掉此行,不返回任何值;(3)"exit(0);"*/
}
运行结果:
(1)return 0;
i_for=0
i_for=1
i_end=2
i_for=0
i_for=1
i_end=2
(2)不返回;
i_for=0
i_for=1
i_end=2
i_for=0
i_for=1
i_end=2
(3)exit(0);
i_for=0
i_for=1
i_end=2
i_for=2
i_end=3
i_for=3
i_end=4
疑问:
(1)“return 0”和“exit(0)”有什么不同呢?
(2)它们的不同又是如何导致了i值的不同以及整个程序输出方式的不同呢?
请教,请教......
阅读(981) | 评论(0) | 转发(0) |