当前位置: 首页 > news >正文

从0开始跟小甲鱼C语言视频使用linux一步步学习C语言(持续更新)8.14

第十六天
第五十二,五十三,五十四,五十五和五十六集

第五十二集

文件包含

一个include命令只能指定一个被包含文件
文件允许嵌套,就是一个被包含的文件可以包含另一个文件。
文件名可以用尖括号或者双引号括起来
但是两种的查找方式不同。
在这里插入图片描述

条件编译

没有什么好说的,直接看视频,
在这里插入图片描述
在这里插入图片描述

本章小结

我就直接贴图吧,
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第五十三集

结构的概述

在这里插入图片描述
无他,就是如此,一个结构体就是有许多不同的数据,
三种方法定义结构体类型变量都可以,大家记得就行。
结构的嵌套也就那样,我就直接贴图吧。
在这里插入图片描述

结构体变量的引用

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
和数组一样,结构体的地址就是他第一个属性的地址。

第五十四集

结构体变量的初始化

在这里插入图片描述
就是这样的,没有啥注意的

结构体数组

在这里插入图片描述
就是student[3]中的student[0],student[1],student[2],里面每个student[n]都是有num,name[20],sex等等上面这些东西
在这里插入图片描述

投票例题

这里小编直接给大家看答案吧,不想看跳过即可
在这里插入图片描述
小编之前是以为strcmp只能识别英文进行比较,但其实strcmp也能比较汉字,小编还以为只要识别到相同的字符就会直接输出,但其实不是的,他识别到相同的字符不会直接输出,会继续识别知道不同或者完毕。

指向结构体类型数据的指针

在这里插入图片描述
和之前一样,没有什么变化,但是多个一个新的访问形式
在这里插入图片描述
->就是这个,可以代替.,二者是一样的作用。

第五十五集

结构指针变量作为函数参数

在这里插入图片描述
实战演练讲得很清楚,关于为什么用strcpy去将“fish.com”录入,小编觉得就是stu.name=“fish.com”错了,之前说了不能这样的,后面小甲鱼说的小编没听懂,不过也没啥关系。

动态存储分配

malloc函数

无他直接上图
在这里插入图片描述

calloc函数

在这里插入图片描述

free函数

在这里插入图片描述
这些不懂没事,毕竟我没没地方用,等以后要用的时候就会了。

链表

在这里插入图片描述
如同链子一般,一个接一个,每个结点都有一个存储的元素和对接下一个节点的地址,就是这么简单。
例子展示这里
在这里插入图片描述
head=head->next;这里大家应该能懂吧,就是形成顺着链子一路下来的功能

建立动态链表

这里听不懂没关系,小编也是难以听得思路清晰,要花一会去理解,不会没关系,下一集那里他会解释这个流程,看就好了。

第五十六集

上集的动态链表

这里小编用自己的话说下吧。
先开一个结点,然后p1和p2一起指向这个结点,声明n=0,录入数据给这个结点,然后读取里面的数据,如果不是0,就执行n=n+1,判断是否等于1,为什么要这个呢?我们保留疑问,很快说到,n=1的话,那就head=p1,好了,这里的话我们上面的疑问就可以说了,这个判断是否等于1的作用就是用来确定第一个结点的,如果等于1,那就把p1现在的地址规定为head,head是链表的开头。确定完是1,后面就不会成立这个条件了,然后p2赋个p1指向的地址,一起跟过来。好了确定完开头,就要开始创结点了,我们先开一个新结点,这个是有一个命令的,大家直接用就好了,然后使p1指向他,然后录入数据,和上次一样判断是不是0,不是0,把p2指向的那个结点的next(也就是指向下一个结点)赋值为p1此时指向的地址,搭建连接这个结点和下一个结点的桥梁,然后再把p2指向p1指向的地方,也就是把p2拉到刚刚新创的结点,p2建完桥就要过来,准备建下一个桥。继续创新结点,判断…如此反复直到录入的数据为0。
大家可以看视频再来看,视频其实比我更好。大家要配合代码看啊

实现链表的输出

在这里插入图片描述
在这里插入图片描述
就是如此

对链表的删除

大家看视频能懂的
在这里插入图片描述
也是很清晰的。

总结

结构体变量的使用,链表的建立,输出以及删除
今天也就结束了,没有什么了,喜欢的点点赞,作者也是初学者,可以大家一起交流,老手看到错误或者不好的地方,在评论区留言,作者我大大感谢!!

http://www.dtcms.com/a/330936.html

相关文章:

  • 测试开发的社区:测试之家
  • 从根源到生态:Apache Doris 与 StarRocks 的深度对比 —— 论开源基因与长期价值的优越性
  • lib.dom.d.ts
  • 速通C++类型转换(代码+注释)
  • 【自动化测试】Web自动化测试 Selenium
  • docker rm删除容器命令入门教程
  • [论文阅读] 人工智能 + 软件工程 | 从模糊到精准:模块化LLM agents(REQINONE)如何重塑SRS生成
  • Flink CDC 实战:实时监听 MySQL Binlog 并同步到 Kafka
  • 监控插件SkyWalking(二)集成方法
  • kafka 单机部署
  • 【Android】适配器与外部事件的交互
  • Mybatis学习笔记(三)
  • [激光原理与应用-267]:理论 - 几何光学 - 胶卷相机的组成和工作原理
  • PostgreSQL 免安装
  • tomcat 定时重启
  • 通过 GitHub520 项目自动获取最新 Hosts 配置,无需手动查询 IP。
  • 语义 HTML 的核心价值:提升 SEO 与 AI 理解
  • 肖臻《区块链技术与应用》第14-15讲 超越货币:以太坊如何用“智能合约”开启去中心化应用时代
  • 备战亚马逊“Prime Big Deal Days”:卖家如何解锁年末增长密钥?
  • 2025年大模型安全岗的面试汇总(题目+回答)
  • 回归算法:驱动酒店智能化定价与自动化运营的引擎—仙盟创梦IDE
  • 不同ide回到上一个文件快捷键
  • STM32--寄存器与标准库函数--通用定时器--输出比较(PWM生成)
  • 区块链在可信空间智能合约中的应用
  • 在IAR Embedded Workbench for Arm中实现NXP S32K3安全调试
  • python sqlite3模块
  • iOS App TF上架全流程实战 高效内测分发与IPA包管理
  • 【KALI】第一篇 安装Kali Linux虚拟机之详细操作步骤讲解
  • Elasticsearch RBAC 配置:打造多租户环境的安全访问控制
  • 一篇文章读懂.Net的依赖注入