首页 > 代码库 > C/C++ 数组下标可以是负值
C/C++ 数组下标可以是负值
我们知道,数组的第一个元素下标是 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; // 得到不可预知的结果 }
最后一行中的负下标可能产生运行时错误,因为它在内存中指向比数组的原点低 256 个字节的地址。 指针 midArray 会初始化为 intArray 的中点;因此可以对其使用正数组和负数组索引。 数组下标错误不会产生编译时错误,但它们会产生不可预知的结果。
参考:http://blog.csdn.net/mycwq/article/details/43373965
https://msdn.microsoft.com/en/library/59682zc4.aspx
C/C++ 数组下标可以是负值
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。