
C语言学习感想
文章平均质量分 83
钟浩森
平平无奇一研究生,从土木行业到电子行业的学习进阶之路!
展开
-
C语言整理-双向链表和单项链表那些事
链表一般细分为:1、不带头节点的单链表2、带头节点的单链表3、不带头结点的双链表4、带头结点的双链表5、带头结点的双向循环链表其具体的实现过程可以由下图表示:头指针: 头指针是指链表指向第一个结点的指针,若链表有头结点,则是指向头结点的指针 头指针具有标识作用,所以常用头指针冠以链表的名字 无论链表是否为空,头指针均不为空,头指针是链表的必要元素 头节点: 头结点是为了操作的统一和方便而设立的,放在第一元素(首元节点)的结点之前,其数据域一般无意义原创 2022-05-11 16:49:42 · 470 阅读 · 0 评论 -
C语言高级-链表、状态机、多线程
第一点链表为什么需要链表为了解决数组的第二个缺陷:就是可以随时改变数组的大小的一种数据结构!什么是链表顾名思义,链表就是用锁链链接起来的表。这里的表指的是一个一个的节点(一个节点就是一个校区),节点中有一些内存可以用来存储数据(所以叫表,表就是数据表);这里的锁链指的是链接各个表的方法,C语言中用来链接两个表(其实就是两块内存)的方法就是指针。简单的来说,链表就像是大学的新校区,主要是为了缓解本部学生拥挤的状态,然后在异地建设新校区,然后本部与新校区之间就通过班车进行沟通链接,本质目原创 2022-03-29 21:39:19 · 2052 阅读 · 0 评论 -
C语言高级-操作系统、main()、NULL
第一点操作系统如何工作像人类社会一样的计算机软件系统(有些人只埋头干活,有些人只做管理)(1)人类社会最开始时人人都干活,这时候没有专业分工,所有人都直接做产生价值的工作。当时是合适的,因为当时生产力低下,人口稀少。这就像裸机程序一样(裸机程序的特点是:代码量小,功能简单、所有代码都和直接目的有关,没有服务性代码)。(2)后来人口增加生产力提高,有一部分人脱离了直接产生价值的体力劳动专职指挥(诞生了阶级)。本质上来说是合理的,因为资源得到了更大限度的使用,优化了配置,提升了整体效率。程序也是一样原创 2022-03-31 16:05:41 · 887 阅读 · 0 评论 -
C语言高级-存储类、作用域、生命周期、链接属性
第一点概念解析存储类一个变量的存储类属性就是描述这个变量存储在何种内存段中;作用域对以下函数进行解读如图可知虽然在for循环内部定义了a,但是在函数外部定义的a++还是显示错误,显示没有定义;这就是作用域的问题!生命周期生命周期就是描述这个变量什么时候诞生(运行时分配内存空间给这个变量)以及什么时候死亡(就是收回给这个变量分配的内存空间)的时间间隔!链接属性编译是将源代码的.C文件编译成.O文件(单个的二进制机器码格式),.O文件中就有很多的符号和代码段、数据段、原创 2022-03-24 17:16:40 · 2749 阅读 · 0 评论 -
C语言高级-预处理、函数、函数库
第一点关于预处理程序执行的过程(1)源码.c->(编译)->elf可执行程序(2)源码.c->(编译)->目标文件.o->(链接)->elf可执行程序(3)源码.c->(编译)->汇编文件.S->(汇编)->目标文件.o->(链接)->elf可执行程序(4)源码.c->(预处理)->预处理过的.i源文件->(编译)->汇编文件.S->(汇编)->目标文件.o->(链接)->原创 2022-03-23 21:12:57 · 1035 阅读 · 0 评论 -
C语言高级-内存解读+字符串+结构体+共用体+大小端+枚举
C语言高级-内存解读+字符串+结构体+数组+共用体+原创 2022-03-18 21:12:26 · 1433 阅读 · 0 评论 -
C语言高级-复杂表达式和指针高级应用
第一点:指针数组和数组指针指针数组实质是一个数组,这个数组中存储的内容全部就是指针变量;int *p[5] 、 int *(p[5])数组指针的实质是一个指针,这个指针指向的是一个数组;int (*p)[5]......原创 2022-03-16 19:25:10 · 575 阅读 · 0 评论 -
C语言高级-指针
第一点:使用指针三步骤:定义指针变量、给指针变量赋值(绑定指针)、解引用第一步:定义指针变量int *p第二步:给指针变量赋值,也就是让指针指向另一个变量,当我们没有指定指针变量之前,这个指针不能被解引用;p=&a //实现指针绑定,让p指向变量ap=(int *)4 //实现指针绑定,让p指向地址为4的哪个变量第三步:解引用如果没有绑定指针到某个变量就直接解引用,基本一定会出错。*p=555 //将555放入p指向的变量中......原创 2022-03-14 17:36:56 · 3574 阅读 · 1 评论 -
C语言高级-位操作
第一点:常用的位操作符:位与、位或、位取反、位异或、左移位、右移位;位与是& 逻辑与是&& 位与时两个操作数是按照二进制位批次对应位相与的,逻辑与是两个操作数作为整体来相与的;(举例:0xAA&0xF0=0xA0, 0xAA&&0xF0=1,)位或是| 逻辑或是|| 逻辑或与位或的区别与位与的概念是一样的;位取反是~ 逻辑取反是! 位取反是1和0相互变换,逻辑取反是真假互换;位异或是^ (两数相等 结果为0 两数不等 结果为1)第二点:原创 2022-03-11 17:31:58 · 3096 阅读 · 0 评论 -
C语言高级-内存
第一点:计算机程序=代码+数据!!冯.诺依曼结构:代码和数据是放在一起的!比如:在三星的S5PV210在LINUX上运行程序时,代码和数据都是存放在DRAM中,是符合冯.诺依曼结构的。哈佛结构:代码和数据是分开的!比如:在普通的单片机中,代码烧录进去的时候是存放在FLASH(NorFlash)中,程序代码是在Flash中运行的,程序中的数据(全局和局部变量)是在RAM(SRAM)[RAM不需要初始化启动]中,因此符合哈佛结构。第二点:SRAM和DRAM的区别是什么?第原创 2022-03-09 17:17:04 · 842 阅读 · 0 评论 -
C语言整理-----return、 break、continue关键字
关于C语言学习基础与进阶的感想原创 2022-02-27 15:43:38 · 1714 阅读 · 0 评论