在C 中,透過引用或指標向函數傳遞參數是修改函數作用域之外的實際值的常見做法。然而,理解何時使用哪一個可能會令人困惑。
依引用傳遞
依引用傳遞允許直接存取和修改原始變數。它用於:
透過指標傳遞
透過指標傳遞提供了透過指標的間接存取。在以下情況下是必要的:
良好實踐
作為一般準則,建議使用在以下情況下引用:
在下列情況下使用指標:
範例
以下程式碼段示範了使用引用傳遞大物件的常見場景:
void foo(std::string& s) { s += "suffix"; }
如果函數需要建立一個一個功能新的字串對象,那麼透過指標傳遞將是合適的:
void foo(std::string* s) { *s = "new string"; // Deallocates the old string }
在極少數情況下,透過值傳遞也可能是合適的,例如因為複製一個小的不可變對象(例如,原始型別)不是問題。
以上是在 C 中什麼時候應該使用引用而不是指標?的詳細內容。更多資訊請關注PHP中文網其他相關文章!