llccbb1 发表于 2017-7-7 19:48:46

关于typdef和Struct的问题

这样定义一个结构体
typedef struct Book
{
    char title;
   char author;
   struct Book *next;
}BOOK, *book;
在这里 BOOK = struct Book 但是*book 具体的含义是什么呢?

llccbb1 发表于 2017-7-8 12:27:23

本帖最后由 llccbb1 于 2017-7-8 12:37 编辑

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

//建立单链表--头插法
LinkList CreatFromHead(LinkList L)
{
        LinkList L;
        Node *s;
        char c;
        int flag=1;
        /*设置一个标志,初值为1,当输入$时,flag为0,建表结束*/
        while(flag)
        {
                c = getchar();
                if(c!='
不懂应该怎么分析*LinkList)
                {
                        s = (Node *)malloc(sizeof(Node));
                        //为读入的字符分配存储空间
                        s->data = c;
                        s->next = L->next;
                        L->next = s;
                }
                else flag = 0;
        }

}
不懂应该怎么分析*LinkList

llccbb1 发表于 2017-7-8 12:39:21

第19、20行应该是if(c!='
但是不知道该怎么修改一改就变回去了,请大家忽略。)
但是不知道该怎么修改一改就变回去了,请大家忽略。

求道于盲 发表于 2017-7-8 14:13:39

BOOK = struct Book
*book 就等于 struct Book *

求道于盲 发表于 2017-7-8 14:14:22

LinkList 是 struct Node*
LinkList* 就是 struct Node**

求道于盲 发表于 2017-7-8 14:15:51

不好理解你就拆开看
typedef struct Node
{
      ElemType data;
      struct Node *next;
}Node, *LinkList;
拆分
struct Node
{
      ElemType data;
      struct Node *next;
};
typedef struct Node Node;
typedef struct Node *LinkList;

这样就很容易理解了
页: [1]
查看完整版本: 关于typdef和Struct的问题