C++ 指针对象的指针变量的语法是如何工作的?

C++ 指针对象的指针变量的语法是如何工作的?,c++,c,pointers,C++,C,Pointers,访问指针对象的指针变量时,语法是如何工作的?我需要两个* 这里有一个例子可以更好地解释我的情况: void function(ofObject *object) //passing by ref so that I can change it { int n; n=*object.*x; //object is a pointer, but so is the class member x; } 如果我只是把*放在开头,那么*object.x将简单地返回object.x的地址,不是吗?还是

访问指针对象的指针变量时,语法是如何工作的?我需要两个
*

这里有一个例子可以更好地解释我的情况:

void function(ofObject *object)  //passing by ref so that I can change it
{
int n;
n=*object.*x;  //object is a pointer, but so is the class member x;
}

如果我只是把
*
放在开头,那么
*object.x
将简单地返回
object.x
的地址,不是吗?还是会?我是不是想得太多了?

运算符
*
的优先级低于
运算符,因此
*object.x
将是编译器错误,因为它与
*(object.x)
相同。这就是
->
操作符存在的目的
object->x
(*object).x
相同。如果object::x的
是一个指针,则可以像往常一样使用
*
操作符取消对它的引用。综上所述,要通过指针取消对指针成员的引用,可以使用
*object->x

use()来帮助减少混淆或创建访问方法 如果需要x的值,*(对象->x)或*((*对象).x)
但是,如果创建访问方法,则可以调用object->getx();其中,getx()为任何指针返回x的值,如果您想遵守它,请使用
*
,而
*
的优先级低于
,如果您使用
()
标记执行首选项,则会很有用

*((*object).x)
*object->x    (I will recommend this).

*对象->x
,或
*(*对象).x
->
的绑定比
*
更紧密,因此您不需要额外的括号。谢谢,这帮助我从总体上消除了对对象指针的混淆。