【发布时间】:2019-10-22 10:07:35
【问题描述】:
在 C++ 中,我试图通过双指针headref 访问结构成员,如下所示
struct Node{
int data;
struct Node* next;
};
struct Node* head = new Node;
head->data = 10;
head->next = NULL;
struct Node** headref = &head;
但是,以*headref->data 身份访问会在转换((Node*)*headref)->data 工作时产生错误。为什么?
【问题讨论】:
-
您能在问题中包含错误吗?
-
你遇到什么样的错误?
-
Operator precedence。请注意,
->的优先级高于* -
不是演员表。如果您认为是演员表,请尝试使用
((Node*)headref)->data而不是((Node*)*headref)->data。它应该会严重失败。你写的演员阵容是空的。 -
@WhozCraig 谢谢。优先级是问题。
标签: c++ pointers operator-precedence unary-operator