我是C++的新手,我想了解下面的示例之间的区别。为什么我们不能使用&(* a),但可以使用typedef来实现它?
我们不能创造功能
void someFunc(int &*a){
int *b=new int; //just for example
a=b;
}
,但使用的typedef
typedef int* pint;
void someFunc(pint &a){
int *b=new int; //just for example
a=b;
}
一切正常。
这只是一个编译器技巧,还是这种行为的原因更复杂?
注意,'pint&a'是'int *&a',而不是'int&* a'。 – Griwes 2012-04-28 11:55:32
我接受过培训,可以读取“内外”的C声明......以变量名开头,然后向外读。由此,int&* a读取指向int的指针。尝试int *&a? – mjfgates 2012-04-28 11:57:35
@mjfgates,谢谢,现在我明白我的错误在哪里:) – 2012-04-28 11:59:18