为什么在 C++ 中访问数组越界不会报错?


这是因为 C++ 不进行边界检查。Java 和 python 等语言具有边界检查,所以如果你尝试访问越界的元素,它们会抛出一个错误。C++ 的设计原则是不应该比等效的 C 代码运行得慢,而 C 不会进行数组边界检查。

因此,如果你尝试访问越界的内存,程序的行为是不确定的,因为这是在 C++ 标准中写明的。通常情况下,每当遇到未定义的行为时,任何事情都可能发生。应用程序可能会崩溃,它可能会冻结,它可能会正常运行(或至少看起来正常运行),它可能会干扰其他应用程序(在现代操作系统中不太可能),等等。

更新于: 30-07-2019

2K+ 浏览量

开启你的职业生涯

完成课程获得认证

开始
广告
© . All rights reserved.