C语言链表添加书籍节点代码解析 - void add_book() 函数

这段代码实现了向一个书籍链表中添加一个新的书籍节点。

void add_book(Book **head, int id, char *name, char *author) 
{
    Book *new_book = (Book*)malloc(sizeof(Book));
    new_book->id = id;
    strcpy(new_book->name, name);
    strcpy(new_book->author, author);
    new_book->status = 0; // 初始状态为未借出
    new_book->next = *head;
    *head = new_book;
}

代码解释:

1. 函数参数:

  • **Book head: 指向指针的指针,表示指向书籍链表头部节点的指针。使用双重指针是为了修改传入链表的头部指针。
  • int id: 新书籍的 id。
  • *char name: 新书籍的名称。
  • *char author: 新书籍的作者。

2. 内存分配:

  • Book *new_book = (Book*)malloc(sizeof(Book)); 使用 malloc() 函数为新的书籍节点分配内存空间,并将其类型转换为 Book 类型。

3. 属性设置:

  • new_book->id = id;: 设置新书籍节点的 id 属性。
  • strcpy(new_book->name, name);: 使用 strcpy() 函数将传入的书籍名称复制到新书籍节点的 name 属性。
  • strcpy(new_book->author, author);: 使用 strcpy() 函数将传入的书籍作者复制到新书籍节点的 author 属性。
  • new_book->status = 0;: 设置新书籍节点的 status 属性为 0,表示初始状态为未借出。

4. 链表操作:

  • new_book->next = *head;: 将新书籍节点的 next 属性指向已有的书籍链表头部节点,将新节点插入到链表的头部。
  • *head = new_book;: 将传入的指针 head 指向新的书籍节点,表示新的节点成为了链表的头部节点。

总结: 通过以上步骤,新的书籍节点就被成功地添加到了书籍链表中。

C语言链表添加书籍节点代码解析 - void add_book() 函数

原文地址: https://www.cveoy.top/t/topic/mpTG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录