為什麼在 C++ 中訪問陣列越界不會報錯?
這是因為 C++ 不進行邊界檢查。Java 和 python 等語言具有邊界檢查,所以如果你嘗試訪問越界的元素,它們會丟擲一個錯誤。C++ 的設計原則是不應該比等效的 C 程式碼執行得慢,而 C 不會進行陣列邊界檢查。
因此,如果你嘗試訪問越界的記憶體,程式的行為是不確定的,因為這是在 C++ 標準中寫明的。通常情況下,每當遇到未定義的行為時,任何事情都可能發生。應用程式可能會崩潰,它可能會凍結,它可能會正常執行(或至少看起來正常執行),它可能會干擾其他應用程式(在現代作業系統中不太可能),等等。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP