访问指针对象的指针变量时,语法如何工作?我需要两个*
吗?
这是一个更好地解释我的情况的例子:
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
的地址,不是吗?或者是吗?我只是想过这个吗?
答案 0 :(得分:3)
*
运算符的优先级低于.
运算符,因此*object.x
将是编译器错误,因为它与*(object.x)
相同。这是->
运算符的存在。 object->x
与(*object).x
相同。如果ofObject::x
是指针,则可以正常使用*
运算符取消引用它。所以把它们放在一起,通过指针取消引用指针成员,你可以使用*object->x
。
答案 1 :(得分:0)
use()有助于减少混淆或制作访问方法 如果你想要x,*(object-> x)或*((* object).x)的值 但如果你创建访问方法,你可以调用object-> getx();其中getx()返回x的值
答案 2 :(得分:0)
对于任何指针,如果您想要尊重它,请使用*
,而*
的优先级低于.
如果您使用()
将会很有用标记执行首选项。
*((*object).x)
*object->x (I will recommend this).