可能重复:
指向指针的指针如何在C中工作?
你好,
尽管我认为我在编程中通过了新手阶段,但仍然有一些问题,我不知道怎么解释它们.是的,有很多"如何"超越,但几乎总是没有人解释为什么和/或何时有一种技术有用.
在我的例子中,我发现在某些情况下,在C++中使用指向指针的指针.不是指向对象的指针吗?哪些好处?应该在何处或何时使用指向指针的指针?在这件事上我觉得有点失常.
我希望时间经验丰富的专家可以回应这些担忧,希望其他没有经验丰富的程序员可以分享.;-)
谢谢大家.
Julen.
嗯,这个一般性问题在某种程度上难以回答.
C++程序员的第一个答案肯定是:不要在C++中使用指针!由于你有很多更安全的方法来处理问题而不是指针,你的目标之一是首先避免它们:)
所以在C++中很少使用指针指针.它们主要用在C.首先,因为在C中,字符串是"char*"所以当你需要一个"指向C字符串的指针"时,你会以"char**"结尾.其次,由于在C中没有引用,当需要一个修改指针的函数或者将指针作为输出值时,需要指定一个指针参数.您通常会在分配内存的函数中找到它,因为它们为您提供指向已分配内存的指针.
如果你采用C++方式,尽量避免指针,你通常有更好的方法.
MY2C
在C中,参数通过指针传递给改变它的函数.对于旧的或遗留代码(int main(int argc, char** argv)),对于将从C(COM/XPCOM)访问的代码或者由用于C(或C风格)的人编写的代码,您将看到与C++相同的内容.
从"纯粹的C++"角度来看,使用指针指针在大多数情况下是编码风格较差的标志,因为大多数需要**构造的情况都可以(并且应该)重构以使用更安全的替代方案(如std::容器或*&参数).