【发布时间】:2018-07-23 12:42:26
【问题描述】:
以下声明可能吗?如果是这样,您如何访问结构内的元素?它可以编译,但我无法访问元素。
struct node
{
int a;
struct node *next;
};
struct node *node1;
int main()
{
node1->a = 5; // I cannot perform this operation
return 0;
}
【问题讨论】:
-
这是一个非常常见和标准的单链表的典型结构布局。您可以像访问任何其他结构一样访问成员。
-
node *可能更好地理解为在struct内创建一个指针。 -
“我无法访问元素”是什么意思?没有尝试访问您在此处显示的代码中的元素。请显示您尝试过的内容以及收到的错误消息。另见:minimal reproducible example
-
顺便说一句,在 C++ 中你不需要写
struct node *只需node*就可以了(在这方面它与 C 不同)。虽然理想情况下你会使用智能指针而不是原始指针 -
事实上在 C++ 中你应该使用 containers 并将这个 struct 连接 留给学术界和糟糕的 C++ 面试官。
标签: c++ pointers object struct