在C 中透過引用傳遞陣列
在C 中,透過引用將陣列作為函數參數傳遞通常被接受,以確保對函數內的陣列反映在呼叫程式碼中。然而,最近的編譯器錯誤引起了人們對這種做法的懷疑。
為什麼不允許「void foo(double& bar)」?
語法「void foo( double& bar)" 嘗試將雙精確度數組引用傳遞給函數 foo。然而,C 不支持這種方法。數組主要透過引用傳遞,而不是透過各個元素本身傳遞。
透過引用傳遞數組的正確方法
要正確地透過引用傳遞數組,請使用以下語法:
void foo(double (&bar)[10]);
在此範例中,「bar」表示一個雙精確度數組,其中包含10 個透過引用傳遞的元素。這確保了對 foo 中的“bar”所做的任何更改也會在呼叫程式碼中發生。
替代解決方案
通常首選透過引用傳遞數組,以避免不必要的複製和效能問題。但是,請務必注意,透過引用傳遞時,陣列需要具有固定大小。如果您需要任意大小的數組,請考慮以下替代方案:
以上是如何在 C 中透過引用正確傳遞數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!