从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。

大家可以看视频再来看,视频其实比我更好。大家要配合代码看啊

实现链表的输出


就是如此

对链表的删除

大家看视频能懂的

也是很清晰的。

总结

结构体变量的使用,链表的建立,输出以及删除

今天也就结束了,没有什么了,喜欢的点点赞,作者也是初学者,可以大家一起交流,老手看到错误或者不好的地方,在评论区留言,作者我大大感谢!!