从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。
大家可以看视频再来看,视频其实比我更好。大家要配合代码看啊
实现链表的输出
就是如此
对链表的删除
大家看视频能懂的
也是很清晰的。
总结
结构体变量的使用,链表的建立,输出以及删除
今天也就结束了,没有什么了,喜欢的点点赞,作者也是初学者,可以大家一起交流,老手看到错误或者不好的地方,在评论区留言,作者我大大感谢!!