首頁 >後端開發 >C++ >C 中何時透過引用或指標傳遞:指導原則?

C 中何時透過引用或指標傳遞:指導原則?

Patricia Arquette
Patricia Arquette原創
2024-11-12 16:31:01778瀏覽

When to Pass by Reference or Pointer in C  : A Guiding Principle?

C 中的引用或指針傳遞:指導原則

在C 中,了解何時使用引用傳遞以及何時使用指針至關重要。這種做法可以產生高效且無錯誤的程式碼。

一般情況

  • 將std::string 傳遞給函數:

    • foo(std::string *) 或foo(std::string&)?
  • 將tr1::shared_ptr 傳遞給函數:

    • foo(tr1::shared_ptr1::shared_ptr1::shared_ptr * ptr ) 或foo(tr1::shared_ptr& ptr)?

指標與引用

透過參考傳遞提供了一致性,因為每個物件都可以被視為引用。然而,透過指標傳遞提供了處理空指標和文字的靈活性。

片段分析

給定的片段:

map<string, shared_ptr<vector<string>> > adjacencyMap;
vector<string>* myFriends = new vector<string>();
myFriends->push_back(string("a"));
myFriends->push_back(string("v"));
myFriends->push_back(string("g"));
adjacencyMap["s"] = shared_ptr<vector<string> >(myFriends);

突出顯示了需求考慮引用和指針的屬性:

  • 地圖鍵使用引用,確保記憶體效率。
  • 向量指標允許動態分配,方便向量相加。

經驗法則

最終,適當的選擇取決於具體的要求。作為指導原則,請考慮:

  • 使用引用:為了高效內存使用以及保證對引用對象的訪問。
  • 使用指標: 處理 nullptr、使用動態記憶體或需要修改引用本身時。

以上是C 中何時透過引用或指標傳遞:指導原則?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn