c语言数组超过有效下标值输出来的是什么?
最近做了一道题下面代码差不多,但一直有个疑惑困扰着我,于是我上机进行了多次试验,但面对结果,我却还是不知道为啥,欢迎大佬解答。谢谢
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int a[]={1,3,5,7,9},i=4;
printf("%d",a[5]);
}
1.经过我重复多次发现上面程序输出来的值一直不变即为: printf("%d",a[5]);
2.当我第二次将代码输出语句改为printf("%d",a[6]);
时,重复多次输出值也一直不变:
3.当我第二次将代码输出语句改为printf("%d",a[7]);
时,重复多次输出值也一直不变:
4.当我将下标在往后改则值每次都不一样例如printf("%d",a[8]);
a[8]第1次输出:
a[8]第2次输出:
a[8]第3次输出:
5.当我把数组值进行修改后 超出数组有效下标值1位,2位,3位值仍然不变,和上面相同。
有人知道这是为啥吗?欢迎评论区回答,求解