在 C/C++ 中超出邊界的訪問陣列
在諸如 Java 的語言中,如果越界訪問陣列,可能會發生這樣的異常 java.lang.ArrayIndexOutOfBoundsException。但在 C 中,沒有這樣的功能,如果越界訪問陣列可能會發生未定義的行為。
下面給出了在 C 中演示這一現象的程式。
示例
#include <stdio.h>
int main() {
int arr[] = {1,2,3,4,5};
printf("The elements of array : ");
for(int i = 0; i<6; i++)
printf(" %d",arr[i]);
return 0;
}輸出
上面程式的輸出如下。
The elements of array : 1 2 3 4 5 32765
現在我們來理解上面的程式。
arr 陣列僅至下標 4 分配了值。因此,當列印陣列元素時,arr[5] 將導致垃圾值。顯示這一點的程式碼片段如下。
int arr[] = {1,2,3,4,5};
printf("The elements of array : ");
for(int i = 0; i<6; i++)
printf(" %d",arr[i]);
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
安卓
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP