何时在 C 中使用引用和指针
在 C 中通过引用或指针传递数据会带来一个常见的困境。为了清楚起见,让我们深入研究每个选项:
参考文献
指针
一般准则
作为一般经验法则,“当可以时使用引用,并且必要时给予指点。”以下是常见场景的细分:
通过引用传递:
通过指针传递:
具体示例
提供的代码片段演示了引用和指针:
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);
在这种情况下,使用向量的引用 (myFriends) 允许直接操作,而无需复制开销。然而,由于 myFriends 是动态分配的,因此它是通过指针访问的,避免了悬空指针问题。
请记住,引用和指针之间的选择取决于情况的具体要求。通过了解每种方法的优点和缺点,您可以做出明智的决策,优化代码性能和清晰度。
以上是我什么时候应该选择 C 中的引用和指针?的详细内容。更多信息请关注PHP中文网其他相关文章!