首页 > 后端开发 > C++ > 在 C 中什么时候应该使用引用还是指针?

在 C 中什么时候应该使用引用还是指针?

Linda Hamilton
发布: 2024-11-13 12:26:02
原创
262 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板