struct Node
{
int val;
struct Node *link;
(*link).val=12;
};
int main()
{
struct Node *link;
(*link).val=15;
return 0;
}
为什么当我尝试访问结构体内部的 (*link).val 时会出现错误,而同样的事情在主函数中运行得很好?
您可以声明结构体的成员,但不能在 C 和 C++ 中的结构体声明中使用语句,例如
(*link).val=12;
结构声明只能包含声明。
与 C++ 相反,在 C 中,即使成员声明也可能没有初始值设定项。那就是你可能不会用C写
struct Node
{
int val = 12;
struct Node *link;
};