鱼C论坛

 找回密码
 立即注册
查看: 1327|回复: 5

[已解决]关于typdef和Struct的问题

[复制链接]
发表于 2017-7-7 19:48:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这样定义一个结构体
typedef struct Book
{
    char title[128];
   char author[40];
   struct Book *next;
}BOOK, *book;
在这里 BOOK = struct Book 但是*book 具体的含义是什么呢?
最佳答案
2017-7-8 14:15:51
不好理解你就拆开看
  1. typedef struct Node
  2. {
  3.         ElemType data;
  4.         struct Node *next;
  5. }Node, *LinkList;
复制代码

拆分
  1. struct Node
  2. {
  3.         ElemType data;
  4.         struct Node *next;
  5. };
  6. typedef struct Node Node;
  7. typedef struct Node *LinkList;
复制代码

这样就很容易理解了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-7-8 12:27:23 | 显示全部楼层
本帖最后由 llccbb1 于 2017-7-8 12:37 编辑

这种定义是在学习数据结构时遇到的,定义一个单链表
  1. //单链表的存储结构描述
  2. typedef struct Node
  3. {
  4.         ElemType data;
  5.         struct Node *next;
  6. }Node, *LinkList;

  7. //建立单链表--头插法
  8. LinkList CreatFromHead(LinkList L)
  9. {
  10.         LinkList L;
  11.         Node *s;
  12.         char c;
  13.         int flag=1;
  14.         /*设置一个标志,初值为1,当输入$时,flag为0,建表结束*/
  15.         while(flag)
  16.         {
  17.                 c = getchar();
  18.                 if(c!='
  19. 不懂应该怎么分析*LinkList)
  20.                 {
  21.                         s = (Node *)malloc(sizeof(Node));
  22.                         //为读入的字符分配存储空间
  23.                         s->data = c;
  24.                         s->next = L->next;
  25.                         L->next = s;
  26.                 }
  27.                 else flag = 0;
  28.         }

  29. }
复制代码

不懂应该怎么分析*LinkList
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-8 12:39:21 | 显示全部楼层
第19、20行应该是
  1. if(c!='
  2. 但是不知道该怎么修改一改就变回去了,请大家忽略。)
复制代码

但是不知道该怎么修改一改就变回去了,请大家忽略。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-8 14:13:39 | 显示全部楼层
BOOK = struct Book
*book 就等于 struct Book *
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-8 14:14:22 | 显示全部楼层
LinkList 是 struct Node*
LinkList* 就是 struct Node**
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-8 14:15:51 | 显示全部楼层    本楼为最佳答案   
不好理解你就拆开看
  1. typedef struct Node
  2. {
  3.         ElemType data;
  4.         struct Node *next;
  5. }Node, *LinkList;
复制代码

拆分
  1. struct Node
  2. {
  3.         ElemType data;
  4.         struct Node *next;
  5. };
  6. typedef struct Node Node;
  7. typedef struct Node *LinkList;
复制代码

这样就很容易理解了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 05:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表