请高手回答看似简单的结构体问题(100分)

  • 主题发起人 NeutronDelphi
  • 开始时间
N

NeutronDelphi

Unregistered / Unconfirmed
GUEST, unregistred user!
结构体(C描写)
struct Node
{
int data;
struct Node *next;
};
这个结构体是非常常见的,我不明白为什么
struct Node
{
int data;
struct Node next;//去掉 *号
};
却有语法错误,编译时提示Struct Node 没有定义.
为什么 Struct Node *next 就没有问题,而Struct Node Next就没有定义.
注意:我的问题是为什么有语法错误,而不是要寻求解决办法!
 
第二个是嵌套定义,从逻辑上有问题.
你想想就明白了,比如一个类的成员中可以有指向这个类的指针,
但决不能有这个类本身的成员.
这不是函数,类型定义是无法递归的.
 
語法上的問題,有時可能沒有道理可將,鏈表結構的聲明語法規定就是這樣。
 
结构体内的指针域的数据类型使用了为定义成功的数据类型。
这是C中唯一规定可以先使用后定义的数据结构。
--《C语言程序设计》
 
xeen讲得透彻,谢谢.
其实是我太心急,想想也就明白了!
 

Similar threads

顶部