为什么在 C++ 中访问数组越界不会报错?
这是因为 C++ 不进行边界检查。Java 和 python 等语言具有边界检查,所以如果你尝试访问越界的元素,它们会抛出一个错误。C++ 的设计原则是不应该比等效的 C 代码运行得慢,而 C 不会进行数组边界检查。
因此,如果你尝试访问越界的内存,程序的行为是不确定的,因为这是在 C++ 标准中写明的。通常情况下,每当遇到未定义的行为时,任何事情都可能发生。应用程序可能会崩溃,它可能会冻结,它可能会正常运行(或至少看起来正常运行),它可能会干扰其他应用程序(在现代操作系统中不太可能),等等。
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP