C语言结构体指针定义问题 - C / C++ -
那个程序的结构体是这样定义的:[ol][*]structbook[*]{[*]??intnum;[*]??floatprice;[*]??structbook*next;...
那个程序的结构体是这样定义的:[ol][*]struct book[*]{[*]??int num;[*]??float price;[*]??struct book*next;[*]};[/ol]这个里面next的定义有点不明白,它没有指向任何地方吗,怎么和一般的定义不一样,哪位高手指导下
展开
4个回答
2013-12-14
展开全部
struct book*next; 本身就是一个结构体类型的指针 指针应该是指向下一个节点啊结构体定义变量的时候 是一个整体所以跟一般定义的指针变量有区别 不过这个指针还是要初始化的 也是要分配指针指向的 它是一个域
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-12-14
展开全部
再给你个例子,你就明白啦[ol][*]#include [*][*]struct book[*]{[*]??int num;[*]??float price;[*]??struct book*next;[*]};[*][*]int main(void)[*]{[*]struct book book1={1,1.0f, 0};[*]struct book book2={2,2.0f, 0};[*]struct book book3={3,3.0f, 0};[*][*]book1.next = &book2;[*]book2.next = &book3;[*][*]struct book *bookt;[*]bookt = &book1;[*]printf(\"current book num is:%d\\n\", (*bookt).num);[*]bookt = (*bookt).next;[*][*]printf(\"current book num is:%d\\n\", (*bookt).num);[*]bookt = (*bookt).next;[*][*]printf(\"current book num is:%d\\n\", (*bookt).num);[*][*]system(\"pause\");[*][*]return 0;[*]} [/ol]
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-12-14
展开全部
[ol][*]struct book[*]{[*]??int num;[*]??float price;[*]??struct book*next;[*]};[/ol]这说明结构体book中包含三个数据成员,包括 整型的num、浮点型的price和指向book类型变量的指针next这种结构往往用来实现链表。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-12-14
展开全部
显然这个结构体是个链表节点这个指针在链表操作的时候会被赋值的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询