C++中的数组下标可以是负数。
负数是可以被数组识别的,如果定义了一个数组int a[5],直接输出a[-2]的值,不同的编译器给出的是不同的值,肯定不是数组的值。
可以使用指针指向数组的某个元素,然后递减,(但是要注意不应该发生越界的行为。)如下程序
#include <iostream>
int main()
{
int a[ 5 ] = { 0, 1, 2, 3, 4 };
int* p = &a[ 4 ];
for ( int i = -4; i <= 0; i++ )
{
std::cout << p[ i ] << std::endl;
}
system("pause");
return 0;
}
C++中下标是可以为负数的,当数组下标位负数时,就是从当前地址向前寻址。。这里的输出结果为:
0
1
2
3
4
转自:http://blog.csdn.net/masefee/article/details/4017295
关于数组下标更深的讨论:http://blog.csdn.net/code_crash/article/details/4855000