我们知道,数组的第一个元素下标是 0。数组的范围也就是从 array[0] 到 array[size – 1]。 但实际上C/C++ 支持正负下标。 负下标必须在数组边界内;否则结果不可预知。 以下代码显示了正数组和负数组下标:
#include <iostream>
using namespace std;
int main() {
    int intArray[1024];
    for (int i = 0, j = 0; i < 1024; i++)
    {
        intArray[i] = j++;
    }
    cout << intArray[512] << endl;   // 512
    int *midArray = &intArray[512];  // 指向了数组中间的数据
    cout << midArray[-256] << endl;  // 256
    cout << intArray[-256] << endl;  // 得到不可预知的结果
}参考:http://blog.csdn.net/mycwq/article/details/43373965
https://msdn.microsoft.com/en/library/59682zc4.aspx
原文:http://blog.csdn.net/mycwq/article/details/43373965