首頁 > 後端開發 > C++ > 為什麼 C 需要常數數組大小:「表達式必須具有常數值」?

為什麼 C 需要常數數組大小:「表達式必須具有常數值」?

Mary-Kate Olsen
發布: 2024-12-11 08:51:15
原創
640 人瀏覽過

Why Does C   Require Constant Array Sizes:

數組大小必須是常數:「表達式必須有常數值」

在C 中初始化數組時,必須知道數組大小在編譯時。這表示數組的行維和列維的值必須是常數表達式。

考慮以下範例:

int row = 8;
int col = 8;
int [row][col]; // error: expression must have a constant value
登入後複製

在此程式碼中,宣告數組時未指定變數名稱。此外,row 和 col 變數不是常數,因此編譯器無法在編譯時確定陣列的大小。這會導致“表達式必須具有常數值”錯誤。

動態分配數組

要建立動態大小的數組,必須使用在堆上分配記憶體新的運營商。必須使用delete釋放分配的內存,以防止內存洩漏。

// Allocate the array
int** arr = new int*[row];
for (int i = 0; i < row; i++)
    arr[i] = new int[col];

// Use the array

// Deallocate the array
for (int i = 0; i < row; i++)
    delete[] arr[i];
delete[] arr;
登入後複製

固定大小數組

對於固定大小數組,行和列維度必須被宣告為 const:

const int row = 8;
const int col = 8;
int arr[row][col];
登入後複製

以上是為什麼 C 需要常數數組大小:「表達式必須具有常數值」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板