关于字符数组最后一个元素的小问题

#include
main()
{
char a[5];
scanf("%c%c",&a[1],&a[2]);
a[3]='m';
printf("%c\n",a[4]);
}
运行结果:
ab
?
请按任意键继续. . .

请问最后一位难道不应该是随机值吗?为什么输出了“?”

? 应该是不能识别的字符,例如纯英文下输出汉字
可能是凑巧是? 也可能是替换符号,
凡是不能识别的都用?代替

是随机的,恰好是'?'

不在调试情况下运行,多运行几次就会发现有时是不一样的结果。

这个怎么是随机呢?,没给a〔4〕赋过值,那么这个元素所在的地址中原本是什么值就输出什么吧。

反正就是个未初始化的值,所以都有可能