為什麼C 不簡化陣列傳回類型
雖然Java 等程式語言允許簡單的陣列傳回類型,但C 需要更複雜的方法。這不是任意的,而是源自於基本的語言設計決策。
內存管理和按值傳遞與按引用傳遞
C 區分傳遞-按值傳遞和按引用傳遞。數組名本質上是指針。按值傳遞數組的結果是其第一個元素的記憶體位址,該位址在函數作用域之外就會遺失。
與 Java 對比
Java 表面上使用傳遞-value,但它使用通常是內存地址的“聰明”值。 Java 方便的陣列傳回類型是透過自動記憶體管理和指標包裝來實現的,從而導致效率降低。
C 的權衡
C 的創建性能為優先考慮,為了速度而犧牲自動內存管理。傳回 C 數組需要明確記憶體分配和指標處理,鏡像 C 的方法。
模板類別異常
模板類別可以傳回數組,因為它們使用類別。然而,傳回 C 數組仍然需要手動記憶體管理。
歷史脈絡
C 的創建者 Bjarne Stroustrup 旨在保留 C 的效能,同時結合來自模擬。限制自動記憶體管理的決定是為了提高效率。
因此,雖然 C 支援數組返回類型,但與 Java 更簡化的方法不同,它優先考慮記憶體管理和速度而不是便利性。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3