傳遞給函數時數組大小差異
sizeof() 運算子在傳遞給函數時報告數組的不準確值。考慮以下程式碼片段:
從 main() 呼叫時,sizeof() 運算子準確地報告數組的大小,但在 test() 函數中,它低估了一個元素的大小。出現這種差異的原因是,當將陣列傳遞給 C 中的函數時,它會衰減為引用數組第一個元素的指標。因此,sizeof(arr) 計算的是指標的大小,而不是底層陣列的大小。
要解決此問題,數組的大小應作為單獨的參數明確傳遞給函數:
或者,對於動態分配的數組(此處未顯示),可以使用標準C 函式庫函數stdlib.h 來準確取得數組的尺寸。
以上是將陣列傳遞給 C 函數時,為什麼「sizeof」會傳回不正確的陣列大小?的詳細內容。更多資訊請關注PHP中文網其他相關文章!