- 博客(13)
- 收藏
- 关注
原创 数据结构(3)——排序
排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列。可以将数据按某字段规律排列,所谓的字段就是数据节点的其中一个属性。比如一个班级的学生,其字段就包含学号、姓名、班级、分数等等,我们既可以针对学号排序,也可以针对分数排序。比如上图是某一次模拟考试的成绩表,老师要想知道考生的各科排名和综合排名,就需要按照各科成绩和总成绩的高低顺序对各行数据进行排列。
2025-03-18 17:36:15
728
原创 数据结构(2)——栈、队列、树
大家学习数据结构的目的是为了更好的处理和存储数据,对于顺序表而言改查比较容易,增删比较麻烦,对于链式表而言,增删比较简单,改查比较麻烦,所以每种数据结构都有不同的特点,用户需要选择合适的数据结构。思考:数据结构中有一种结构称为栈,而linux内存中的栈空间就是基于此设计的,请问栈应该如何设计?之前学习linux内存分区的时候,已经知道栈内存自顶向下进行递增,其实栈和顺序表以及链式表都一样,都属于线性结构,存储的数据的逻辑关系也是一对一的。
2025-03-16 21:41:08
729
原创 数据结构(1)——概述、链表
O其实是order的缩写。大O的括号中写的值就是影响程序执行语句最大的那个项。时间复杂度不是算法的运行时间来衡量,因为程序的运行时间取决于CPU的性能,不同性能的CPU执行指令的周期是不一样的,比如8bit单片机的主频是12MHZ,而32bit单片机的主机可以168MHZ,而计算机的CPU主频都是xxx.GHZ。顺序表的缺点是:顺序表的数据在进行增删的时候,需要移动成片的内存,另外,当数据元素的数量较多的时候,需要申请一块较大的连续的内存,同时当数据元素的数量的改变比较剧烈,顺序表不灵活。
2025-03-14 22:12:41
584
原创 Linux基础(3)——网络配置、编译流程
以上两种模式都可以联网,区别就是虚拟机要不要一个独立的IP。对于桥接模式需要注意,必须要仔细选择桥接的物理网卡,否则会出现无法联网的情形。桥接是指虚拟网卡通过物理机的某一个网络接口,直接连接到路由器去获取 IP 地址。假设物理机有WiFi、以太网等多个网口,其中无线WiFi网口连接到了互联网,而有线以太网口连接到了嵌入式板卡,那么桥接时就要注意需要桥接到哪个网口。如下所示:注意:如果网络参数经过多次配置导致无法再正确联网,可以通过点击上图中的“还原默认设置”按钮来重置虚拟机的网络。
2025-03-12 22:21:17
716
原创 Linux基础(2)——基础命令
在Linux系统开发的时候一般都是直接在终端Terminal中进行控制,终端也被称为命令解释器,所以终端也被称为shell终端,shell具有贝壳的意义,其实是解释器软件的名称,用于保护Linux内核(Kernel)终端就是Linux系统内核提供给用户和内核交互的一个程序,Linux内核是没有思想的,所以Linux内核已经提前预置一些控制指令,这些预置指令被称为shell命令。
2025-03-11 16:37:51
1002
原创 Linux基础(1)——环境搭建
随着科技的飞速发展,嵌入式技术在我们的日常生活中扮演着越来越重要的角色。从智能手机到智能家居,从工业自动化到医疗设备,嵌入式系统无处不在,为我们的生活带来了便利和舒适。而在国家政府的大力支持下,国内嵌入式领域的发展前景十分不错。国家政府高度重视科技创新,特别是在信息技术领域。近年来,一系列鼓励创新和研发的政策相继出台,为嵌入式领域的发展提供了有力的支持。例如,国家对新一代人工智能、物联网等领域的研发投入不断加大,为嵌入式技术的发展提供了广阔的空间。
2025-03-10 22:26:55
1035
原创 C语言阶段(6)——结构体、联合体、枚举、宏定义
union联合体名称数据类型 成员名称;数据类型 成员名称;数据类型 成员名称;....//注意:复合语句后的分号不可以省略注意:联合体变量中的成员由于是共用一块内存,所以每个成员的起始地址都是相同的,只要修改联合体中任何一个成员的值,都会影响其他成员的值,另外,也不应该同时对联合体中的多个成员进行赋值。成员访问。
2025-03-09 15:34:35
564
原创 C语言阶段(5)——函数
回答:可以使用递归函数解决,当然注意递归函数不是万能的,一般用于解决数学问题,递归函数指的是在一个函数内部反复调用自己的函数,递归函数具有递进和回归的过程,就相当于把一个类似的大问题拆分为很多类似的小问题,再把每个小问题的结果作为上一个问题的答案,一层一层进行解决。回答:const是C语言的关键字之一,其实是英文constant的缩写,具有常量的含义,const关键字在C语言标准中是类型限定符,一般用于修饰变量的,可以用于降低变量的访问权限,相当于把变量的属性变为只读,变量的存储单元只能读,不能写。
2025-03-08 21:48:34
597
原创 C语言阶段(4)——指针
指针指向的是地址,所以可以把指针理解为地址,也可以把地址当做指针使用,注意:如果打算获取某个地址下的值,必须使用 * 间接运算符 , *地址 == 地址下的值。回答:是会的,所以为了提高程序的可靠性,为了避免异常出现所以就算不存储有效地址,也应该对定义的指针变量进行初始化,注意:对指针变量进行初始化,则应该把指针变量对应的内存初始化为0,但是0只是一个整数,并不是地址,而指针变量就是应该存储地址。思考:既然可以使用一个指针变量来存储另一个变量的地址,能否定义一个指针变量,然后来存储另一个指针变量的地址?
2025-03-06 22:18:45
455
原创 Linux基础(4)——C语言-继Linux后模块化编程
auto是C语言关键字之一,中文具有自动的含义,属于存储类说明符之一,只能用来修饰局部变量,所以只能在函数中使用,auto关键字具有隐式说明,在局部变量创建的时候默认存在,一般用auto修饰的变量也被称为自动变量,指的是变量由系统自动管理,变量创建时系统自动分配内存单元,变量的作用域结束时系统自动释放。这些预处理指令将会在预处理阶段被解释掉,如会把被包含的文件拷贝进来,覆盖掉原来的#include语句,把所有的宏定义展开,所有的条件编译语句被执行,GCC还会把所有的注释删掉,添加必要的调试信息。
2025-02-26 22:20:02
850
原创 C语言阶段(3)——语句和块、数组
E1是一个数组对象,E1也就是数组名称,C语言标准中规定数组名可以作为数组中第一个元素的地址,所以相当于E1是数组中第一个元素的地址,而E2是一个整数,所以 E1 + E2 相当于从E1这个地址向后偏移E2个单位(以元素为单位,所以需要考虑元素的类型),所以E1+E2的结果还是一个地址, *( E1 + E2) 相当于间接访问该地址,相当于得到了(E1+E2)这个地址下的值。所有的浮点运算都是以双精度进行的,即使运算中只有 float 类型,也要先转换为 double 类型,才能进行运算。
2025-02-17 16:34:57
888
原创 C语言阶段(2)——数据类型、输入输出、运算符
回答:可以使用递归函数解决,当然注意递归函数不是万能的,一般用于解决数学问题,递归函数指的是在一个函数内部反复调用自己的函数,递归函数具有递进和回归的过程,就相当于把一个类似的大问题拆分为很多类似的小问题,再把每个小问题的结果作为上一个问题的答案,一层一层进行解决。回答:const是C语言的关键字之一,其实是英文constant的缩写,具有常量的含义,const关键字在C语言标准中是类型限定符,一般用于修饰变量的,可以用于降低变量的访问权限,相当于把变量的属性变为只读,变量的存储单元只能读,不能写。
2025-02-17 16:33:24
536
原创 C语言阶段(1)——认知、框架分析
简单的说,语言是人类进行沟通和交流的工具,广义的说,语言是一套具有共有规则的指令,指令可以通过文字、嗅觉、触觉等方式传递。xxxxx of xxxxx ---> A of B --> B的A。
2025-02-17 15:36:46
833
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人