为什么我在自引用结构中遇到错误?

问题描述 投票:0回答:1
struct Node
{
    int val;
    struct Node *link;
    (*link).val=12;
};
int main()
{
    struct Node *link;
    (*link).val=15;
    return 0;
}

为什么当我尝试访问结构体内部的 (*link).val 时会出现错误,而同样的事情在主函数中运行得很好?

c++ c linked-list self-reference
1个回答
1
投票

您可以声明结构体的成员,但不能在 C 和 C++ 中的结构体声明中使用语句,例如

(*link).val=12;

结构声明只能包含声明。

与 C++ 相反,在 C 中,即使成员声明也可能没有初始值设定项。那就是你可能不会用C写

struct Node
{
    int val = 12;
    struct Node *link;
};
© www.soinside.com 2019 - 2024. All rights reserved.