c++ - 双指针有什么实际用途?

标签 c++ pointers

我已经搜索并搜索了这个问题的答案,但找不到我真正“得到”的任何东西。

我对 c++ 非常陌生,无法理解双指针、三指针等的使用。它们有什么意义?

谁能告诉我

最佳答案

老实说,在编写良好的 C++ 中,您应该很少在库代码之外看到 T**。其实星星越多,离中奖越近an award of a certain nature .

这并不是说永远不需要指针指向指针。您可能需要构造一个指向指针的指针,原因与您需要构造指向任何其他类型对象的指针的原因相同。

特别是,我可能希望在数据结构或算法实现中看到这样的东西,当您在动态分配的节点周围进行混洗时,也许?

不过,一般来说,在这个上下文之外,如果你需要传递一个对指针的引用,你会这样做(即T*&)而不是在指针上加倍,即使这样也应该是相当罕见的。

在 Stack Overflow 上,您会看到人们用指向动态分配的数据指针数组的指针做可怕的事情,试图实现他们能想到的效率最低的“二维 vector ”。请不要受到他们的启发。

总之,你的直觉并非没有值(value)。

关于c++ - 双指针有什么实际用途?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49015858/

相关文章:

c++ - 将 char* 输出到 std::string C++

c++ - GNU 内置函数 `__builtin_unreachable ` 如何在此代码片段中工作?

delphi - 在 Delphi XE 中将 UnicodeString 转换为 PAnsiChar

有人能解释一下 C 语言中这条语句在内存中发生了什么吗?

c - 分配新值时二维数组元素不会改变?

c++ - 这是一个实用且性能足够好的着色器,可以在移动设备上进行模糊处理吗?

c++ - 参数 `NumberOfConcurrentThreads`在 `CreateIoCompletionPort`中是如何使用的

c++ - 避免使用 boost::interprocess::message queue 创建文件

c++ - 为什么 boost 可选引用不是 T* 的包装器?

c++ - 将指向数组的指针元素推送到 C++ 中的 std::list