【问题标题】:Another option to double pointer双指针的另一种选择
【发布时间】:2013-04-10 11:13:31
【问题描述】:

我如何发送一个指向函数的指针?我的意思是,我想更改该函数中指针指向的位置。

我已经看到了双指针,例如:

Abc* p;
function(&p);

function(Abc** p){
  (*p) = 0;
}

但是,有人告诉我,这不是解决问题的最佳方法。怎么可能更好?这行得通吗? :

Abc* p;
function(p);

function(Abc* p){
  p = 0;
}    

谢谢

【问题讨论】:

  • 通过引用传递指针的完整教程 - 通过引用传递它function(Abc*& p)

标签: c++ pointers double-pointer


【解决方案1】:

不,那行不通。这会将p 的值复制到函数中,然后只修改该副本。

在 C++ 中通过引用传递某些内容的最合适方法是使用引用类型。它们在类型中用 & 符号表示。你可以引用指针:

Abc* p;
function(p);

void function(Abc*& p){
  p = 0;
}   

这意味着,即使您直接传递了p,它也不会复制到函数中。 p 参数是对传入对象的引用

【讨论】:

  • 好的,谢谢!我不知道你可以同时使用 * 和 &。所以这是有道理的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多