我认为数组被视为静态数据结构。
然后我们执行这个:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[5] = {10,20,30,40,50};
a[5] = 100;
a[6] = 200;
printf("Out of bounds %d, %d", a[5], a[6]);
return 0;
}
这将返回Out of bounds 100 200
并正常结束。为什么?
如果是静态的,为什么会声明并正常返回 200 a[5]
?
一切都让我得出结论:gcc 将数组视为动态数据结构。
我说得对吗?发生了什么事?