C 中的陣列宣告:瞭解常數值表達式
在C 中,當嘗試基於變數維度建立數組時,例如:
int row = 8; int col = 8; int [row][col];
可能會出現「表達式必須具有常數值」之類的錯誤。出現此錯誤的原因是數組的大小必須在編譯時固定。
要解決此問題,有兩個選項:
1。動態數組分配:
對於動態大小的數組,需要在堆上分配記憶體並手動管理其分配和釋放。這可以如下完成:
// 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;
2.常數宣告陣列:
如果陣列大小固定,可以使用常數宣告:
const int row = 8; const int col = 8; int arr[row][col];
第一個例子中,數組宣告缺少變數名,會導致單獨的編譯錯誤。此外,編譯器需要數組大小聲明的常數值表達式,以確保靜態已知的邊界和最佳化的資源管理。
以上是為什麼 C 數組宣告需要常數值表達式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!