求高手解释下!
今天看到一个很简单的函数调用的例子,但结果并不是我想的那样,望高手解释下,谢!
[size=11px]#include <stdio.h>
int foo()
{
int i;
printf("%d\n",i);
i=777;
}
int main()
{
foo();
foo();
return 0;
}打印出来的第一行是一个随机数,但第二行却是777,这里有个疑惑,函数调用结束后,值不是被释放了吗?为何第2行的是777?
************************************************************************************
#include <stdio.h>
int foo()
{
int i;
printf("%d\n",i);
i=777;
}
int main()
{
foo();
printf("haha\n");
foo();
return 0;
}
结果又不一样了,第二次调用函数输出的结果是0了,这是为什么呢?望高手给予解释,本人也查阅了相关书籍,跟那个栈什么的貌似有关,给俺解释下 ,再谢!!!