0

我怎样才能发送一个指向函数的指针?我的意思是,我想更改指针在该函数中指向的位置。

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

Abc* p;
function(&p);

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

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

Abc* p;
function(p);

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

谢谢

4

1 回答 1

3

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

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

Abc* p;
function(p);

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

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

于 2013-04-10T11:14:59.290 回答