回覆列表
  • 1 # 使用者4779816573800

    C語言中的陣列本質上是在計算機記憶體中分配的連續空間。

    舉個例子吧:整型陣列(1, 2, 3, 4, 5),如果要把2刪除,那麼可以將3,4,5分別向前移動,變成(1, 3, 4, 5, 5)。由於陣列長度分配以後不會變化,因此最後一個多餘的5實際上並不能刪掉,它只是表示無意義的位置。因此對於程式設計人員來講,需要另一個引數來記錄這個陣列中你認為有用的元素是前多少個。

    值得注意的是,如果陣列長度不足以儲存新的元素時,是無法動態地增加陣列長度的。如果非要這麼做,必須要在陣列分配時保證陣列大小足夠大。這也就是一些新手經常將陣列長度設定為1000,10000的原因。

    回到這個問題:

    // 預定義的陣列,長度為20

    int array[20] = {0};

    // 陣列當前有效長度

    int arrayLen = 0;

    // 如果不是全域性陣列,則需要將陣列指標和陣列長度指標傳入進行修改

    void insertArray(int newElement, int index)

    {

    // 這裡沒有做陣列長度的檢驗,你需要自己完成

    int i;

    for (i = arrayLen++; i > index; )

    array[i--] = array[i - 1]; // 後移

    array[index] = newElement;

    }

    void deleteArrayElement(int index)

    {

    for ( ; index

    arrayLen--;

    }

  • 中秋節和大豐收的關聯?
  • 為書法作品落款用黑印章是什麼意思?正確嗎?