见见这段代码,为什么输出结果会是这样的啊

看看这段代码,为什么输出结果会是这样的啊?
#include<stdio.h>

/** 输出: 2003778602 **/
int main()
{
int i,a[1],t;
i=0;
printf("%d\n",t);
return 0;
}




/** 输出: 1 **/
int main()
{
int i,t;
i=0;
printf("%d",t);
return 0;
}





/** 输出: 0 **/
int main()
{
int t;
printf("%d",t);
return 0;
}




难道是跟内存有关系么?

------解决方案--------------------
因为你没有初始化变量,变量所指向的内存是个垃圾数据,什么都有可能,所以会输出不同的值。