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

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

Linda Hamilton
發布: 2024-11-13 12:26:02
原創
259 人瀏覽過

When Should I Use References vs. Pointers in C  ?

C 中的引用傳遞與指標

在C 中,理解何時使用引用和指標可能是一個令人困惑的話題。本文探討了按引用傳遞和按指針傳遞的細微差別,並提供了實用指南。

依引用傳遞:

當您需要時,建議依引用傳遞:

  • 修改傳遞變數的實際值。
  • 高效傳遞複雜物件(例如字串、向量),避免複製開銷。

透過指標傳遞:

以下情況需要透過指標傳遞:

  • 無法透過引用傳遞暫時物件(因為引用必須綁定到現有物件) ).
  • 您需要傳遞一個空指標。
  • 您需要更改指標本身,而不是其目標(例如,為指標指派一個新值)。

最佳實踐:

作為一般規則,盡可能首選透過引用傳遞。但是,在處理文字、空指標或需要修改指標本身的情況時,請透過指標傳遞。

範例:

提供的程式碼片段透過指向映射動態分配向量的指標。這是一種有效的方法,因為我們需要建立一個新向量並透過引用地圖來傳遞它。透過使用指針,我們無需複製整個向量。

#include <iostream>
#include <vector>
#include <map>
#include <string>
#include <tr1/memory>
#include <algorithm>
using namespace std;
using namespace std::tr1;

int main(){
        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);
        return 0;
}
登入後複製

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

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