名詞釋義
護欄柱錯誤(fence post error),即越過數組末尾進行讀寫操作的錯誤。
它指的是這樣一個問題:要建立一堵長7米的護欄,如果兩個相鄰護欄柱相隔1米,需要多少個護欄柱?大多數人會說7個,但實際上需要8個。如右圖,很好地說明了這一點。這種“少1”(off by one)計數可能是C++程式設計師的噩夢。所以學習C++語言需要習慣這樣一種觀念——一切都是從0開始計數。
示例
#include <iostream>
using namespace std;
main()
{
int Array[25]={1};
cout<<"Array[1]="<<Array[1]<<endl;
cout<<"Array[25]="<<Array[25]<<endl;
system("pause");
return 0;
}
圖中為運行結果,在讀取Array[25]時因為其不存在,顯示為亂碼(6897392)。