C语言输出结果替:858993460?

C语言输出结果为:-858993460??
#include<stdio.h>
void main()
{
int i;
int a[10];
    for(i=0;i<10;i++)
    a[i]=i;
    printf("%d",a[i]);
printf("\n");
}
输出结果为:-858993460

请问为什么会输出这个结果?
C语言输出这个异常结果

------解决方案--------------------
循环结束的时候,i的值是10,输出a[10],数组越界了,出来的结果就不确定。
------解决方案--------------------
你的printf("%d",a[i]);实际上是执行printf("%d",a[10]); 越界了,怎么改楼上说的很清楚了,循环或判断语句最好加{} 以免出错