Array[n] 與Array[10]:變數初始化和陣列大小的數字文字之間的差異
在C 程式設計中,數組在資料儲存和檢索中發揮著至關重要的作用。但是,在處理數組初始化時可能存在某些陷阱,尤其是與使用可變長度數組相關的陷阱。
考慮以下程式碼片段:
int n = 10; double tenorData[n] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
此程式碼旨在初始化一個名為 tenorData 的陣列,其大小由變數 n 決定,該變數設定為 10。但是,此方法會引發編譯錯誤,指出可變大小的物件 tenorData 無法在
此程式碼的主要差異在於使用變數 n 來定義陣列的大小。在 C 中,不支援變長數組,這表示數組的大小在編譯時必須是已知常數。
要解決此問題並成功初始化數組,有幾個選項可用:
double tenorData[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
const int n = 10; double tenorData[n] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int n = 10; double* tenorData = new double[n];
使用完數組後,請記住使用delete [] tenorData 釋放內存。
int n = 10; std::vector<double> tenorData(n);
透過遵循這些準則,您可以有效地在C 中初始化數組,同時避免與可變長度數組相關的陷阱。
以上是C 中的陣列初始化:`Array[n]` 與 `Array[10]` – 有什麼不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!