程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C/C++ 數組下標可以是負值

C/C++ 數組下標可以是負值

編輯:關於C++

我們知道,數組的第一個元素下標是 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 的中點;因此可以對其使用正數組和負數組索引。 數組下標錯誤不會產生編譯時錯誤,但它們會產生不可預知的結果。

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved