为什么我们不能使用&(*a)但可以使用typedef来实现它?

Dmi*_*sev 0 c++

我是C++的新手,我想了解下面这些例子之间的区别.

我们无法创造功能

void someFunc(int &*a){
    int *b=new int; //just for example
    a=b;
}
Run Code Online (Sandbox Code Playgroud)

但是使用typedef

typedef int* pint;

void someFunc(pint &a){
    int *b=new int; //just for example
    a=b;
}
Run Code Online (Sandbox Code Playgroud)

一切正常.

它只是一个编译技巧,还是这种行为更复杂的原因?

pmd*_*mdj 10

pint& a相当于int*& a,而不是int&* a.您不能在C++中使用指向引用类型,但您可以使用引用指针类型.