读书人

求教一下结构体命名,教材上有点模糊解

发布时间: 2012-04-05 12:42:40 作者: rapoo

求教一下结构体命名,教材上有点模糊
1)typedef struct
{......}
seqlist;

2)typedef struct lnode
{struct lnode *p;}
Lnode,*LinkList;
int main()
{ LinkList L;
Lnode *s,sa;
}


上面
1)与2)其实是完全可以不用typedef的吧,教材中却都这么用有什么原因吗,为什么不直接写成struct seqlist{}?
2)中*s与l是否完全一致?为何要定义了一个Lnode,又定义一个*LinkList?




[解决办法]
问题(1):不用typedef的话每次声明struct 变量你得这样写:struct lnode a;而使用后直接这样写:lnode;
问题(2):不一致,LinkList指向的是整个链表的首地址,而Lnode指向的是链表中其中一个节点的地址.
[解决办法]

探讨
1)typedef struct
{......}
seqlist;

2)typedef struct lnode
{struct lnode *p;}
Lnode,*LinkList;
int main()
{ LinkList L;
Lnode *s,sa;
}


上面
1)与2)其实是完全可以不用typedef的吧,教材中却都这么……

读书人网 >C语言

热点推荐