语法如何用于指针对象的指针变量?

时间:2015-12-04 03:40:51

标签: 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的地址,不是吗?或者是吗?我只是想过这个吗?

3 个答案:

答案 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).