【备战春招】第6天-C01结构体及相关
2023/2/14 4:24:10
本文主要是介绍【备战春招】第6天-C01结构体及相关,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
- 课程名称:Linux C语言结构体
- 课程链接:https://www.imooc.com/learn/409
- 章节名称:
- 第5章:动态数据结构
- 5-1 静态链表
- 5-2 动态链表
- 第5章:动态数据结构
- 讲师姓名:
雷过就跑
- 时间: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; } // 代码进行了优化,循环体内不再需要使用判断语句
-
动态链表,是把链表中的数据在运动过程中不断添加,并且根据指定值是不理满足条件来决定是否要停止循环
-
学习心得
结构体指针理解起来还有一点费劲
这篇关于【备战春招】第6天-C01结构体及相关的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-10Rakuten 乐天积分系统从 Cassandra 到 TiDB 的选型与实战
- 2025-01-09CMS内容管理系统是什么?如何选择适合你的平台?
- 2025-01-08CCPM如何缩短项目周期并降低风险?
- 2025-01-08Omnivore 替代品 Readeck 安装与使用教程
- 2025-01-07Cursor 收费太贵?3分钟教你接入超低价 DeepSeek-V3,代码质量逼近 Claude 3.5
- 2025-01-06PingCAP 连续两年入选 Gartner 云数据库管理系统魔力象限“荣誉提及”
- 2025-01-05Easysearch 可搜索快照功能,看这篇就够了
- 2025-01-04BOT+EPC模式在基础设施项目中的应用与优势
- 2025-01-03用LangChain构建会检索和搜索的智能聊天机器人指南
- 2025-01-03图像文字理解,OCR、大模型还是多模态模型?PalliGema2在QLoRA技术上的微调与应用