C语言中数组覆盖问题

语言定义了数组内容,再用gets为什么会把以前定义的内容干掉?
char a[10]={1,2,3,6};
gets(a);
printf("%s",a[10]);

输入ABC,为什么输出也是ABC,1236哪去了?

1234被ABC'\0'覆盖了