编写程序时,指针类型有问题。 代码如下所示:
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没有改变。我认为这应该是一种叫做引用调用的东西。任何人都可以帮我解决这个问题吗?
非常感谢。
答案 0 :(得分:3)
您可以将参数作为指针的引用。最后,指针也是一个对象,可以通过引用进行修改。
int func(datatype*& A)
{
A = &B;
}
但是,我更愿意返回结果并指定它:
datatype* func()
{
return &B;
}
// […]
dataType* mainA = func();
答案 1 :(得分:1)
您必须将A
参数声明为对指针的引用:
int func(datatype *&A){
现在指针本身将通过引用传递,因此如果您将其传递,func()
将被允许更改mainA
。