首頁 > 後端開發 > C++ > 在 C 中什麼時候應該使用引用而不是指標?

在 C 中什麼時候應該使用引用而不是指標?

Barbara Streisand
發布: 2024-11-20 14:45:17
原創
522 人瀏覽過

When Should You Use References vs. Pointers in C  ?

理解C 中的引用和指標傳遞

在C 中,透過引用或指標向函數傳遞參數是修改函數作用域之外的實際值的常見做法。然而,理解何時使用哪一個可能會令人困惑。

依引用傳遞

依引用傳遞允許直接存取和修改原始變數。它用於:

  • 改變大型物件(例如字串、向量)以避免不必要的複製。
  • 在兩個函數使用相同變數的情況下傳遞輸入輸出參數。

透過指標傳遞

透過指標傳遞提供了透過指標的間接存取。在以下情況下是必要的:

  • 需要操作指標(例如,重新指派給新物件)。
  • 傳遞空值,不允許引用。
  • 防止修改原始變數(傳遞 const 指標)。

良好實踐

作為一般準則,建議使用在以下情況下引用:

  • 您想要改變原始變數。
  • 您有一個非空值要傳遞。
  • 原始變數不是太大。

在下列情況下使用指標:

  • 您需要操作變數的位址。
  • 您有可為空的值。
  • 您想要防止修改原始變數。

範例

以下程式碼段示範了使用引用傳遞大物件的常見場景:

void foo(std::string& s) {
  s += "suffix";
}
登入後複製

如果函數需要建立一個一個功能新的字串對象,那麼透過指標傳遞將是合適的:

void foo(std::string* s) {
  *s = "new string";  // Deallocates the old string
}
登入後複製

在極少數情況下,透過值傳遞也可能是合適的,例如因為複製一個小的不可變對象(例如,原始型別)不是問題。

以上是在 C 中什麼時候應該使用引用而不是指標?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板