频道栏目
首页 > 程序开发 > 软件开发 > C++ > 正文
C/C++ 数组下标可以是负值
2015-02-02 10:10:55         来源:没有开花的树  
收藏   我要投稿

我们知道,数组的第一个元素下标是 0。数组的范围也就是从 array[0] 到 array[size – 1]。 但实际上C/C++ 支持正负下标。 负下标必须在数组边界内;否则结果不可预知。 以下代码显示了正数组和负数组下标:

 

#include 
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 的中点;因此可以对其使用正数组和负数组索引。 数组下标错误不会产生编译时错误,但它们会产生不可预知的结果。

 

 

点击复制链接 与好友分享!回本站首页
相关TAG标签 负值 下标 数组
上一篇:POJ 3080 Blue Jeans
下一篇:POJ 3463 Sightseeing
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站