![](https://img-blog.csdnimg.cn/direct/66b5163f662c4c7a8ee35f4299553339.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
嵌入式全栈开发学习笔记
文章平均质量分 88
我将把这套系统的学习路线以及学习的过程中涉及到的知识更新在这个专栏!从软件到硬件,从理论到项目系统地记录在本专栏!欢迎订阅!
适合人群:在校本科生或者本科毕业想要转行的社会人员!
本专栏全部免费阅读(与本专栏内容配套的项目部分将会放在别的付费专栏中!)如有疑问,QQ交流群群号:963138186
Vera工程师养成记
QQ交流群:963138186
展开
-
嵌入式全栈开发学习笔记---数据结构(链表的分类)
常见的链表有:静态链表(用的很少,有点类似于顺序表)、单链表、双向链表、循环链表、双向循环链表(效率最高)原创 2024-08-06 10:25:51 · 69 阅读 · 0 评论 -
嵌入式全栈开发学习笔记---数据结构(单链表)
链式存储俗称链表,将零散的结点连起来,比如当我们找到第一个结点的时候,我们可以通过某种方式找到第二个结点,以此类推。虽然它们不是连续的,但是我们能通过某种方式把它们连起来,我们也把这种结构称为线性结构。编辑链表的每个结点都有一个地址,并且地址是随机的,即使我们知道链表中第一个结点的地址,也无法找到第二个结点,而顺序表的地址是连续的,所以当我们知道顺序表中第一个结点的位置我们就能顺着首地址找到后面的位置。编辑因此我们需要把链表的每一个结点连起来,形成一条线。如何连起来?首先我们把这个结点原创 2024-08-06 10:16:00 · 640 阅读 · 0 评论 -
嵌入式全栈开发学习笔记---数据结构(顺序表)
顺序表应该支持以下操作:初始化操作,建立一个空的顺序表InitList(*L); 判断顺序表是否为空 ListEmpty(L); 清空顺序表ClearList(*L);获取第i个位置的元素,存放在e中GetElem(L, i, *e); 查找于e相等的元素,返回元素的位置LocateElem(L, e); 在第i个位置插入元素eListInsert(*L, i, e); 删除第i个位置的元素,保存在e中ListDel(*L, i, *e); 获原创 2024-08-04 17:41:49 · 834 阅读 · 0 评论 -
嵌入式全栈开发学习笔记---数据结构概述
入门级概念什么是数据结构?我们以往都是把数据存放在数组中,数组占用的是连续的内存。这种形式大部分都是没有问题的,90%的情况下数组都是能解决需求的,但是数据量特别大时,比如4亿个整型数据,你如何进行排序呢?我们不可能把这么多个数据放在内存中,也不会有这么多的内存。因此,我们就要想办法如何来排布这些数据才能放入内存中,以及如何排布才能让操作的效率最高。所以,数据的结构形式就是我们所说的数据结构。什么是算法?算法和数据结构有什么联系?我们提到数据结构时一般都会涉及到算法。之前我们学过冒泡排序就算是一种常原创 2024-08-04 17:25:42 · 673 阅读 · 0 评论 -
嵌入式全栈开发学习笔记---C语言笔试复习大全索引
到今天为止,我们的C语言笔试复习基本结束,为了方便日后再翻看我们的复习内容,我觉得有必要做一个索引表,也相当于是一个C语言知识框架。原创 2024-05-26 16:44:11 · 870 阅读 · 0 评论 -
嵌入式全栈开发学习笔记---C语言笔试复习大全25(实现学生管理系统)
一般来说,管理系统都包含学生信息,和“增删改查”这些管理操作。用结构体来实现,步骤分解:完成参考代码:原创 2024-05-26 16:08:25 · 1054 阅读 · 0 评论 -
嵌入式全栈开发学习笔记---C语言笔试复习大全24
堆和栈的区别?(面试重点)堆空间是用户管理的,用户申请,用户释放;而栈空间是系统管理的,当用户定义一个变量的时候,系统会自动为它开辟一个空间,当一段程序运行完时候,系统会自动释放掉这个空间。堆空间更大,栈空间更小,如果我们要申请连续的大内存,比如说10万个整数,我们可以去堆空间申请。堆空间使用效率低(因为空间大,内存记在一个链表里面,申请内存时,它需要去查一下链表,查一下哪边可以使用),栈空间使用效率高(一直往前申请就可以了)。堆空间函数结束不会释放(需要用户手动释放),栈空间函数结束自动释放。原创 2024-05-26 11:05:11 · 1327 阅读 · 0 评论 -
嵌入式全栈开发学习笔记---C语言笔试复习大全23
为什么要学习联合体?结构体有个缺点就是比较占内存,因为我们每次使用结构体时要给里面的每个成员都开辟空间,但是有时候我们只需要用到里面的某个成员,而不是全部,我们只想为我们使用到的成员申请空间,但是其他成员又不能直接删掉,因为我们有时候还会使用到其他成员,所以怎么办呢?这个时候联合体就派上了用场。联合体又叫共用体。是一种特殊的数据类型,允许在相同的内存位置存储不同的数据类型。联合体可以带有多个成员,但是任何时候只能有一个成员带有值。联合体提供了一种使用相同的内存位置的有效方式。联合体的定义原创 2024-05-26 10:05:49 · 928 阅读 · 0 评论 -
嵌入式全栈开发学习笔记---C语言笔试复习大全22
结构体为什么要学习结构体?我们以往存储数据都是用数组来存储的,但是数组有个缺点就是存储的数据的类型必须是一样的。如果我们想要存储一个人的信息,比如,身高、年龄等,身高是浮点型,年龄是整型,那这种数据用数组来存储是不行的,因此我们需要学习结构体。结构体的声明struct的语法格式如下:struct 结构体名 {成员表列}; //分号不能丢比如:struct student{int num;char name[20]原创 2024-05-26 09:59:10 · 694 阅读 · 0 评论 -
嵌入式全栈开发学习笔记---C语言笔试复习大全21(编程题25~30)
上一篇复习了数组指针和指针数组、指针的指针和命令行参数,这一节完成最后6道编程题。这篇博文的目的是复习C语言,我们会陆续以30多个编程题作为复习要点,这30多个编程题基本涵盖了C语言所有的内容了,只要你掌握了这30多个编程题,那么你的C语言基本就没什么问题了。原创 2024-05-25 14:07:22 · 781 阅读 · 0 评论 -
嵌入式全栈开发学习笔记---C语言笔试复习大全20
指针数组是数组!一个数组的元素值为指针,则该数组是指针数组。指针数组的所有元素都必须是具有相同存储类型和指向相同数据类型的指针变量。指针数组说明的一般形式为:类型说明符 *数组名[数组长度]其中类型说明符为指针所指向的变量的类型。例如: int *pa[3];表示pa是一个指针数组,它有三个元素,每个元素值都是一个指针,指向整型变量。数组指针数组指针是一个指针!该指针指向数组(一维或二维都可以)。例如:int (*p)[5];可以这么理解,p是一个指原创 2024-05-25 13:54:18 · 819 阅读 · 0 评论 -
嵌入式全栈开发学习笔记---C语言笔试复习大全19
函数指针的定义在C语言中,一个函数总是占用一段连续的内存区,而函数名就是该函数所占内存区的首地址。把函数的这个首地址(函数入口地址)赋予一个指针变量,使该指针变量指向该函数。然后通过指针变量就可以找到并调用这个函数。我们把这种指向函数的指针变量称为“函数指针变量”。函数指针变量定义的一般形式为:类型说明符 (*指针变量名)();例如:int (*pf)(); 表示pf是一个指向函数入口的指针变量,该函数的返回值(函数值)是整型。原创 2024-05-18 17:26:56 · 818 阅读 · 0 评论 -
嵌入式全栈开发学习笔记---C语言笔试复习大全18(编程题17~24)
这篇博文的目的是复习C语言,我们会陆续以30多个编程题作为复习要点,这30多个编程题基本涵盖了C语言所有的内容了,只要你掌握了这30多个编程题,那么你的C语言基本就没什么问题了。24、向左旋转字符串。(输入XYZabcdef 3,输出abcdefXYZ,即字符串向左移动3位,前面的接到后面)提示:定义两个指针,一个指针获取字符串,将要固定不变的那部分字符拷贝到另一个指针中,然后再将要挪动的那部分字符串接到该字符串的后面,打印出来。原创 2024-05-18 13:55:28 · 982 阅读 · 0 评论 -
嵌入式全栈开发学习笔记---C语言笔试复习大全17
char str[ ]= “helloworld”; //数组定义为数组类型的时候,str++是不能运行的,str[0]++可以运行。因为str是首元素的地址,也就是当我们定义这个数组的时候,内存已经为这个数组分配好了空间,str固定了是首元素的地址,如果你想让它往后挪的话是不行的,也就是说str++是不可以的。所以请记住:数组名是一个指针常量,不能被修改!但是str[0]++表示的是元素加1,也就是首元素的值加1,这个是可以的。比如str[0]就’h’,加1就变成了i。所以也请记住:数组里面原创 2024-05-12 17:47:45 · 1225 阅读 · 0 评论 -
嵌入式全栈开发学习笔记---C语言笔试复习大全16
指针来表示数组数组名就是数组首元素地址,指针用来保存地址数据。于是可以这样写:int *p = a;//a是一个数组下面就可以通过指针来访问数组。*p表示a[0] 也可以写成p[0]*(p + 1)表示a[1] 也可以写成p[1]*(p + 2)表示a[2] 也可以写成p[2]...用数组来表示指针指针就是数组、数组就是指针,可以这么说,但是不严谨可以通过数组的形式访问指针指向的内容char *ptr = “helloworld”;原创 2024-05-12 17:41:10 · 721 阅读 · 0 评论 -
嵌入式全栈开发学习笔记---C语言笔试复习大全15
上一篇复习了指针的定义相关内容,这一篇我们继续来复习指针使用时的注意事项。const 修饰指针是什么意思?(笔试重点)const有“就近原则”,也就是靠谁近就是修饰谁;const char *s1;//修饰*s1的“*”号,那么*s1就不能被修改(即s1指向的内容不能被修改),而这种情况下,s1可以被修改的,比如s1++可以运行,(*s1)++就不能运行char *const s1;//修饰s1,那么s1就不能被修改,s1++不可以运行,而(*s1)++可以运行const char *c原创 2024-05-12 12:22:55 · 1219 阅读 · 0 评论 -
嵌入式全栈开发学习笔记---C语言笔试复习大全14
指针类型如何保存变量 a 的地址 0x1000?地址0x1000也是一种数据,和整数 1 需要整型来保存一样,地址0x1000 需要指针来保存(即指针类型,类似于char型,int型)。指针类型有:int*, char*, short*, long*, float* , double*......保存int型变量的地址,用int*;保存char型变量的地址,用char*,其他类型的变量一样的道理。注:打印指针/地址用的占位符是%p原创 2024-05-07 17:20:53 · 710 阅读 · 0 评论 -
嵌入式全栈开发学习笔记---C语言笔试复习大全13(编程题9~16)
上一篇复习了关键字,这一篇我们来做第二次的8道编程题。这篇博文的目的是复习C语言,我们会陆续以30多个编程题作为复习要点,这30多个编程题基本涵盖了C语言所有的内容了,只要你掌握了这30多个编程题,那么你的C语言基本就没什么问题了。注意:由于本专栏是嵌入式全栈开发专栏,为了我们能熟悉以后实际工作中的开发环境,我们写C语言全部在Linux中的vim编辑器中写,这么做事为了我们能够熟练掌握Linux系统的常用命令以及Linux上的vim编辑器的常用工作命令,以达到对口训练的目的!vim编辑器的一些原创 2024-05-07 17:07:46 · 763 阅读 · 1 评论 -
嵌入式全栈开发学习笔记---C语言笔试复习大全12
static有三个作用;1、如果定义了一个全局变量,那么该工程目录下的每一个.c文件都能使用它,那就会有安全隐患,如果不想让其他.c文件使用它,只能在本文件中使用,我们可以在全局变量前加上static,如static int num=100;这样即使别的文件加上extern声明了外部变量,也不能使用它了。因此static修饰全局变量,可以改变变量的作用域,只能在本文件被使用。2、如果在一个函数前面加上static,那么这个函数也不能被其他.c文件使用,因此static也可以修饰函数,改变函数的作用域原创 2024-05-06 09:22:43 · 591 阅读 · 0 评论 -
嵌入式全栈开发学习笔记---C语言笔试复习大全11
函数调用过程思考:函数调用过程是在怎么样的?第一步:通过函数名找到函数的入口地址,然后程序就跳到函数的入口地址;第二步:给形参分配空间;第三步:传参(值传递和地址传递(如果是传一维数组,则传递数组名,传的只是首元素的地址,如果是传二维数组名,传的只是数组首行的地址));第四步:执行函数体;第五步:返回数据;第六步:释放空间(栈空间:局部变量)原创 2024-05-06 09:16:24 · 650 阅读 · 0 评论 -
嵌入式全栈开发学习笔记---C语言笔试复习大全10
上一篇复习了二维数组,这一篇我们来复习字符数组。字符数组(笔试重点)字符数组初始化字符数组的初始化有两种方法,一种是逐个赋值,一种是用字符串赋值。1.char ch[5] = {'h', 'e', 'l', 'l', 'o'}; //麻烦,一般不用2.char ch[10] = “helloworld”; //方便实用,但是存在bug,有些平台上这样写打印出来后面会跟着很多乱七八糟的东西,如果这样写的话字符数组定义要大一些。3.推荐写法:char ch[11] = “hellowo原创 2024-05-05 10:06:06 · 889 阅读 · 0 评论 -
嵌入式全栈开发学习笔记---C语言笔试复习大全9
上一篇复习了一维数组,这一篇我们来复习二维数组。二维数组二维数组定义的一般形式为:类型说明符 数组名[常量表达式][常量表达式];例如:float a[3][4],b[5][10];定义a为3×4(3行4列)的数组,b为5×10(5行10列)的数组。二维数组的初始化1、分行给二维数组赋初值。原创 2024-05-05 09:51:29 · 929 阅读 · 0 评论 -
嵌入式全栈开发学习笔记---C语言笔试复习大全8
上一篇复习了8个编程题,这一片开始复习数组和函数。数组分为:一维数组,二维数组,字符数组(笔试重点)我们先来看一维数组1、一维数组的定义格式为:类型说明符 数组名[常量表达式]; 例如: int a[10]; //它表示定义了一个整形数组,数组名为a,有10个元素。2、在定义数组时,需要指定数组中元素的个数,方括号中的常量表达式用来表示元素的个数,即数组长度。原创 2024-05-04 14:16:49 · 930 阅读 · 0 评论 -
嵌入式全栈开发学习笔记---C语言笔试复习大全7(编程题1~8)
这一篇是开始刷文章开头说的30多了编程题的前八个!1、200~300之间能被3整除的数,5个一行输出;2、求两个数的最大公约数、最小公倍数;3、输入十个数,求出平均值;4、通过编程实现,统计1~n有多少个9;5、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?6、一个数如果恰好等于它的因子之和,这个数成为完数,例如:6=1+2+3。编程找出1000以内的完数;7、神州行用户无月租费,话费每分钟0.6元;全球通用户月租费50元,话费每分钟0. 4元。每个原创 2024-05-04 10:30:30 · 1358 阅读 · 0 评论 -
嵌入式全栈开发学习笔记---C语言笔试复习大全6
这篇博文的目的是复习C语言,我们会陆续以30多个编程题作为复习要点,这30多个编程题基本涵盖了C语言所有的内容了,只要你掌握了这30多个编程题,那么你的C语言基本就没什么问题了。注意:由于本专栏是嵌入式全栈开发专栏,为了我们能熟悉以后实际工作中的开发环境,我们写C语言全部在Linux中的vim编辑器中写,这么做事为了我们能够熟练掌握Linux系统的常用命令以及Linux上的vim编辑器的常用工作命令,以达到对口训练的目的!vim编辑器的一些工作命令在上一篇博文中已经详细介绍过了,如果不了解可以先原创 2024-05-03 16:43:28 · 1053 阅读 · 0 评论 -
嵌入式全栈开发学习笔记---C语言笔试复习大全5
上一篇复习了常量和变量,输入和输出,这一篇我们开始复习C语言的运算符及其优先级。这篇博文的目的是复习C语言,以30多个编程题作为复习要点,这30多个编程题基本涵盖了C语言所有的内容了,只要你掌握了这30多个编程题,那么你的C语言基本就没什么问题了。注意:由于本专栏是嵌入式全栈开发专栏,为了我们能熟悉以后实际工作中的开发环境,我们写C语言全部在Linux中的vim编辑器中写,这么做事为了我们能够熟练掌握Linux系统的常用命令以及Linux上的vim编辑器的常用工作命令,以达到对口训练的目的!原创 2024-05-03 09:58:05 · 919 阅读 · 0 评论 -
嵌入式全栈开发学习笔记---C语言笔试复习大全4
上一篇介绍了三道非常经典的考数据类型长度、数据范围和数据类型转换的笔试题。这一篇开始复习常量和变量,输入和输出。这篇博文的目的是复习C语言,以30多个编程题作为复习要点,这30多个编程题基本涵盖了C语言所有的内容了,只要你掌握了这30多个编程题,那么你的C语言基本就没什么问题了。上一次我们复习了一个非常重要的关键字sizeof,这次我们再复习一个关键字const。const这个关键字是介于常量和变量之间的,很多人把它理解为是将变量定义为常量,但其实它是用来把变量定义为只读变量。原创 2024-05-02 12:38:50 · 901 阅读 · 0 评论 -
嵌入式全栈开发学习笔记---C语言笔试复习大全3
上一篇介绍了数据类型的长度和数据范围,并且分别讲解了两个经典的笔试题,这一篇我们再来看三道非常经典的考数据类型长度、数据范围和数据类型转换的笔试题。这篇博文的目的是复习C语言,我们会陆续以30多个编程题作为复习要点,这30多个编程题基本涵盖了C语言所有的内容了,只要你掌握了这30多个编程题,那么你的C语言基本就没什么问题了。原创 2024-05-02 11:00:19 · 984 阅读 · 0 评论 -
嵌入式全栈开发学习笔记---C语言笔试复习大全2
这篇博文的目的是复习C语言,以30多个编程题作为复习要点,这30多个编程题基本涵盖了C语言所有的内容了,只要你掌握了这30多个编程题,那么你的C语言基本就没什么问题了。注意:由于本专栏是嵌入式全栈开发专栏,为了我们能熟悉以后实际工作中的开发环境,我们写C语言全部在Linux中的vim编辑器中写,这么做事为了我们能够熟练掌握Linux系统的常用命令以及Linux上的vim编辑器的常用工作命令,以达到对口训练的目的!vim编辑器的一些工作命令在上一篇博文中已经详细介绍过了,如果不了解可以先去看看。原创 2024-05-01 22:34:15 · 791 阅读 · 0 评论 -
嵌入式全栈开发学习笔记---C语言笔试复习大全1
这篇博文的目的是复习C语言,以30多个编程题作为复习要点,这30多个编程题基本涵盖了C语言所有的内容了,只要你掌握了这30多个编程题,那么你的C语言基本就没什么问题了。注意:由于本专栏是嵌入式全栈开发专栏,为了我们能熟悉以后实际工作中的开发环境,我们写C语言全部在Linux中的vim编辑器中写,这么做事为了我们能够熟练掌握Linux系统的常用命令以及Linux上的vim编辑器的常用工作命令,以达到对口训练的目的!vim编辑器的一些工作命令在上一篇博文中已经详细介绍过了,如果不了解可以先去看看。原创 2024-05-01 19:06:22 · 906 阅读 · 0 评论 -
嵌入式全栈开发学习笔记---vim编辑器
vim是Linux中常用的一个编辑器,之后我们写代码就是使用这个vim来写。几乎所有的Linux里面都有一个默认的编辑器vi,但是有一些Linux系统没有vim,如果没有vim就可以用vi。但是大部分Linux都是有vim的。进入vim编辑器当我们输入vim按回车键之后就进入了vim编辑器原创 2024-04-30 21:23:12 · 883 阅读 · 1 评论 -
嵌入式全栈开发学习笔记---Linux基本命令4
我们最后学习几个命令:我们有的时候下载一些文件、软件、库,它会以压缩包的形式出现,所以我们有必要学会如何解压缩包。tar -zcf 压缩包的名字 需要压缩的文件压缩命令有很多,我们先只介绍这一个压缩包的名字可以自定义)需要压缩的文件可以是多个)它既可以压缩文件也可以压缩文件夹原创 2024-04-28 22:25:38 · 413 阅读 · 3 评论 -
嵌入式全栈开发学习笔记---Linux基本命令3
rm -rf 文件名r就是remove删除,-r是递归,f就是force强制,rm -rf 表示强制彻底删除的意思,这条命令用来删除文件或者文件夹(即目录),要谨慎使用,一旦删除就找不回来了。那我们把上一篇的时候我们拷贝到家目录下的xxx文件删除掉rm -rf /删除根目录下的所有文件,就相当于相当格式化了,整个系统就没有了。注意!!!这行命令千万不要去敲!!!不要开玩笑!!!如果你正好是root管理员权限的话,你敲这行命令的话,就没有任何回旋的余地了!如果你是普通用户的话,你敲这行命令的话,它会提原创 2024-04-28 21:12:15 · 1058 阅读 · 3 评论 -
嵌入式全栈开发学习笔记---Linux基本命令2
接下来我们继续介绍两个常用的命令一个是拷贝文件,一个是剪切文件 ,或者也可以用来改名字。cp 源路径 目的路径“cp”用来拷贝文件或者目录,使用这个命令时要指定源路径和目的路径。源路径是什么呢?就是要拷贝的文件在哪里。还有目的路径,就是把文件拷贝到哪里去。我们指定源路径和目的路径的时候可以使用相对路径,也可以使用绝对路径。相对路径和绝对路径在上一篇已经讲过了,如果不了解可以去看看。比如我们现在正在root家目录下,这时我们想要把根目录下的bin目录中的一个ls文件拷贝到当前原创 2024-04-27 18:22:06 · 414 阅读 · 0 评论 -
嵌入式全栈开发学习笔记---Linux基本命令1
Linux的命令是数不清的,就像很多应用软件一样,随时都有可能被开发出来。但是我们目前阶段只需要掌握基本的命令就可以了。上一篇博文中我已经简单介绍了两个基本的命令了:“ls”:罗列出当前目录下的文件;“cd /”:进入根目录;ls就是list罗列的意思;c就是change改变的意思,d就是directory目录的意思,cd合起来就是改变目录的意思;本节就来具体解释一个有关cd和ls的更多相关命令原创 2024-04-27 17:24:21 · 1072 阅读 · 0 评论 -
嵌入式全栈开发学习笔记---Linux目录结构
通俗来讲,虚拟机就相当于虚拟出一台电脑,然后镜像就相当于是一台虚拟的电脑上面安装一个操作系统。Windows在图形界面这块做的比较人性化,而且用户使用起来比较方便,用户只需要通过鼠标根据目的选择目标目录或者文件夹,双击即可进入下一级文件夹或者目录,创建文件或者文件夹也比较方便,因为用户可以看见自己所操作的文件或者文件夹。但是很多Linux是没有这种图形界面给你操作的,比如你使用的是云服务器的话,它只是提供了一个简单的终端,在终端编辑器中打印出来一些东西给你看,只是以一种文字的形式告诉你某个目录下有什么文件原创 2024-04-26 18:08:52 · 673 阅读 · 1 评论 -
嵌入式全栈开发学习笔记---专栏内容预告
我将把这套系统的学习路线以及学习的过程中涉及到的知识更新在这个专栏!从软件到硬件,从理论到项目系统地记录在本专栏!欢迎订阅!适合人群:在校本科生或者本科毕业想要转行的社会人员!原创 2024-04-26 15:41:39 · 534 阅读 · 0 评论