C++ 指针传递和指向指针的地址传递之间的区别
本文介绍了在C或C++编程语言中,将“指向指针”和“指针地址”传递给函数之间的区别。众所周知,指针保存变量或任何内存位置的地址。如果指针指向内存位置,则可以用它来更改变量的值。
对于函数来说,任何指针都可以被本身或指针的地址传递。但如果要永久地在函数外部改变指针的内存位置,则必须使用函数内的引用或双指针来捕获,即假设任何内存都是在局部函数内创建的。
然后,它指向由函数捕获的指针,没有任何引用或任何双指针。在这种情况下,由于没有被引用或双指针捕获到函数定义内部,因此主函数内没有任何变化。
程序1:
输出:
说明: 输出没有更改的原因是函数为其创建了一个 复制指针 。因此,指针的地址更改不会反映在函数外部。这可以使用引用或双指针来解决。
程序2:
输出:
说明:
如果需要替换在foo()函数结束时存储在ptr中的内存,则必须在foo()函数中使用引用或双指针来捕获ptr。
程序3:
输出结果:
解释: