我有一个包含 6 个元素的数组,但是当我尝试访问 arr[6] 时,它给了我一个垃圾值而不是数组溢出错误。这背后的原因是什么?
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main()
{
int arr[] = {3, 2, 1, 56, 10000, 167};
cout << "Value: " << arr[6];
return 0;
}
C 和 C++ 不对数组执行边界检查。这就是它们速度快的部分原因。
但是,如果您确实访问了数组末尾,则会在代码中触发未定义的行为。它可能会崩溃,可能会输出奇怪的结果,或者可能看起来工作正常。