别越界

10 分钟

一排 5 个储物柜编号 0 到 4,你却去开第 5 号——那儿根本没柜子,这就叫越界。麻烦的是程序常常不报错,但你读到的是隔壁的垃圾数据,写进去还可能弄坏别的东西。

#include <iostream>
using namespace std;
int main() {
    int a[5] = {1, 2, 3, 4, 5};
    cout << a[4] << endl;  // 合法,最后一个
    // cout << a[5];        // 越界!千万别这么写
    return 0;
}

越界最可怕的地方就是"不报错":这次运气好没事,换台电脑或换组数据就崩,事后极难查。所以下标一定盯紧在 0 到 n-1 之间。

小纸条

为什么"不报错"反而更危险?

登录 后可看答案

别越界 · C++ 入门 · op599 课程