编写程序时指针类型有问题。
该代码如下所示:

datatype B;
int func(datatype* A){
 A=&B;
};
int main(int argc,char** argv){
 dataType* mainA=new dataType;
 func(mainA);
}


我想要的是在执行func(mainA)之后。 mainA指向B。我知道我的代码是错误的,此后,mainA并未更改。我认为这应该称为按引用调用。谁能帮我解决这个问题?

非常感谢。

最佳答案

您可以使参数成为指针的引用。最后,指针也是一个对象,可以通过引用进行修改。

int func(datatype*& A)
{
    A = &B;
}


但是,我希望返回结果并分配它:

datatype* func()
{
    return &B;
}

// […]

dataType* mainA = func();

关于c++ - c++指针类型和引用调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26892196/

10-12 20:41