为了账号安全,请及时绑定邮箱和手机立即绑定

【备战春招】第6天-C01结构体及相关

标签:
C
  • 课程名称:Linux C语言结构体
  • 课程链接:https://www.imooc.com/learn/409
  • 章节名称:
    • 第5章:动态数据结构
      • 5-1 静态链表
      • 5-2 动态链表
  • 讲师姓名:雷过就跑
  • 时间:2023-02-12 23:30

课程内容

  • 静态链表

    • 链表都需要一个头指针变量

    • 这个头指针变量是必须的,如果只知道指向链表中间一个的地址,那么从这个地址向前的内容都将无法访问,只能从这个指针向后查找

    • 也就是在上面情况中,头指针就是指向当前链表中的一个内存

    • 把链表中每个元素都叫做链表的结点

    • 链表要包括两个部分

      • 用户所需要的数据
      • 下一个结点的地址
    • 使用循环来访问静态链表中数据(代码优化)

      • for (struct weapon *p = head; p != NULL; p = p->next) {
            printf("Price: %d, ATK: %d\n", p->price, p->atk);
        }
        
      • 使用for循环可以比while循环节省行数

  • 动态链表

    • 所谓动态链表是指在程序运行过程中从无到有建立链表的过程,以下为源码:

    • struct Student {
          char *name;
          int code;
          int english;
          double math;
          struct Student *next;
      }//定义结构体
      int main()
      {
          Student *head, *new, *newer;
          head = new = newer = (Student *)malloc(sizeof(Student));
          std::cin >> head->name >> head->code >> head->english >> head->math;
          while (0 != newer->code) {
              new->next = newer;
              new = newer;
              newser = (Student *)malloc(sizeof(Student));
              std::cin >> newer->name >> newer->code >> newer->english >> newer->math;
          }
          new->next = NULL;
      }
      // 代码进行了优化,循环体内不再需要使用判断语句
      
    • 动态链表,是把链表中的数据在运动过程中不断添加,并且根据指定值是不理满足条件来决定是否要停止循环

学习心得

结构体指针理解起来还有一点费劲
图片描述
图片描述

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
9
获赞与收藏
1

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消