自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 嵌入式学习的第二十六天-系统编程-文件IO+目录

注:一些小命令1.pwd -获取当前路径2.ll -i 获取编号。

2025-05-22 19:21:06 804

原创 嵌入式学习的第二十五天-系统编程-文件相关函数-标准I0+文件IO

操作系统为了方便用户使用系统功能而对外提供的一组系统函数。称之为 系统调用 其中有个文件IO;一般都是对设备文件操作,当然也可以对普通文件进行操作。注:一个基于Linux内核的没有缓存的IO机制。

2025-05-21 17:23:31 1159

原创 嵌入式学习的第二十四天-系统编程-文件相关函数-标准IO

一般都是对普通文件操作是一种有缓存的IO 在文件IO和用户程序之间,加入缓冲区,可以。I: 键盘是标准输入设备 ====》默认输入就是指键盘 /dev/input。(1)标准io的概念 1975 Dennis r IO库,C语言的标准,ANSI c。man xxx == man 1 xxx ===>查看当前xxx命令。C一部分,任何支持标准C的系统都可使用标准IO实现文件存储。man 2 xxx ===>查看xxx对应的系统调用函数。man 3 xxx ===》查看xxx对应的标准库函数。

2025-05-20 18:13:50 1104

原创 嵌入式学习的第二十三天-数据结构-树+哈希表+内核链表

(3),任意一个二叉树T,如果其叶子结点的个数是n0,度数为2的结点数为n2, n0 = n2 +1;(3),完全二叉树,对于一颗有n个结点的二叉树按层序编号,如果编号i(1<=i<=n)的结点于同样。n个结点的有限集合,集合要么为空树,要么由一个根结点和两棵互不相交,分别称谓根结点的左。(1),斜树,所有的结点都只有左子树,左斜树,所有结点都只有右子树,右树。,先从根开始(不是先访问根),从左开始访问,在访问根,在访问右结点。n = 0 ,空树。树的度数是指,这棵树中,最大的结点的度数,称谓树的度数。

2025-05-19 18:57:41 1273

原创 嵌入式学习的第二十二天-数据结构-栈+队列

2.栈顶(top):允许操作的一端 栈底(bottom):不允许操作的一端。3.栈的插入操作叫做进栈,也叫压栈、入栈;栈的删除操作叫做出站,也叫弹栈。1.定义:队列是只允许在一段进行插入,而在另一端进行删除操作的线性表。1.定义:栈是限定仅在表尾进行插入和删除操作的。(2).销毁 DestroySeqStack。2.允许插入的称谓队尾,允许删除的一端队头。(1).创建 CreateSeqStack。(5).进栈 PushSeqStack。(6).出栈 PopSeqStack。(4).获取栈顶元素。

2025-05-18 23:50:57 752

原创 嵌入式学习的第二十一天-数据结构-双向链表

在终端敲make,进行编译,若要指定makefile ,加-f再加指定makefile。双向链表是在单链表的每个结点中,再设置一个指向其钱去节点的指针域。5. vi Makefile(工程管理工具) :三个.c以上可使用。10.双向链表的逆序。

2025-05-15 17:58:47 806

原创 嵌入式学习的第二十天-数据结构-调试+链表的一般操作

1.一般调试2.找段错误1.单链表的修改2.单链表的销毁3.查找中间节点 4.找倒数第k个节点5.链表的逆序6.链表的排序(插入法排序) 7.循环链表 1.存储方式:2.时间性能3.空间性能

2025-05-14 18:59:48 447

原创 嵌入式学习的第十九天-数据结构-线性表链式存储

为了表示每个数据元素,ai与其直接后继数据元素ai+1之间的逻辑关系,对ai来说,除了存储。(1)线性表链式存储结构的特点是一组任意的存储单位存储线性表的数据元素,存储单元可以是。(2)也就是说前面的顺序表只需要存储数据元素信息就可以了。其本身的信息外,还需要存一个指示器直接后续的信息。把存储元素信息的域叫数据域,把存储直。这两部分信息组成数据元素ai的存储映像,叫结点(Node);可以被存储在任意内存未被占用的位置上。1.线性表的链式存储目的:解决顺序存储的缺点,插入和删除,动态存储问题。

2025-05-13 20:35:06 578

原创 嵌入式学习的第十八天-数据结构-绪论+算法+线性表

相互之间存在一种或多种特定关系的数据元素的集合。算法是解决特定问题求解步骤的描述,计算机中表现为指令的有限序列,每条指令表示一个或多个零个或者多个数据元素的有限序列。

2025-05-12 19:06:05 768

原创 嵌入式学习的第十七天-结构体+共用体+位运算

上图中需为8字节的整数倍,int 为4字节,0能将4整除,放入4个字节,4能将1整除,放入1个字节,5不能将2整除,往后移一位,6能将2整除,放入2个字节,一共占8个字节。4.枚举:week的取值可能为其中一种,限制取值范围,其中的值可以用print("%d\n)可实现点灯操作,通过电压差,将需要亮灯的地方通过&置零。可实现关灯操作,通过电压差,将需要关灯的地方通过|置1。打印出来,可为其中变量赋值,避免枚举值重复,:有符号的右移为算数右移,无符号的为逻辑右移。4.^-按位或-指定位翻转,其它位不变。

2025-05-12 09:15:02 355

原创 嵌入式学习的第十六天-指针

2.malloc ,动态内存分配,在堆上申请空间,申请大小为size字节的内存空间,如果申请成功,返。然后再与P前面的“*”结合,“*”表示此数组是指针类型的,每个数组元素(相当于一个指。*运算符的结合性是从右到左,因此**p 相当于*(*P),显然*P是指针变量的定义形式。5.用函数指针变量调用函数时,只需将(*P)代替函数名即可(P为指针变量名)在(*p)之后的。最前面的*,那就是定义了一个指向字符数据的指针变量。由于[]比*优先级高,因此P先与[4]结合,形成P[4]形式,这显然是数组形式,它有。

2025-05-08 23:28:35 432

原创 嵌入式学习的第十五天-指针

2.【const】: 在指针前加const修饰表示无法通过指针修改指向的变量,对指针指向的变量只可。3.void*万能指针,不能作为指针,进行指针运算,用来强制类型转换,适用于未知类型,类型多变。二维数组名就是指向长度为cols长度的一维数组首数组指针,一维数组名相当于指向该一维数组的。格式:基类型 (*指针名)【元素个数】;(6)strncpy函数。(7)strncat函数。(8)strncmp函数。(4)strcat函数。(5)strcmp函数。(2)二维数组找最大值。(1)二维数组的遍历。

2025-05-07 20:31:38 285

原创 嵌入式学习的第十四天-指针

以首元素为基准,从右往左找第一个比基准数小的数,从左往右找第一个比基准数大的数,5.空指针,无法进行指针运算,代表一种指针的状态,该指针指向是空间不能进行间接访问,不可。找到后两个数互换,当地址重合循环终止,交换当前地址元素与首元素,然后以重合元素为分界。2.数组不能进行++操作,指针可以,指针为左值变量,单目运算符结合方向自右向左。7.两个地址值不能求和,可以求差,差值为几个基类型,前提是两个指针的基类型一致。4.int *binaryFind 为指针型函数,返回值为指针。9.使用迭代器实现三种排序。

2025-05-06 21:59:38 267

原创 嵌入式学习的第十三天-宏+指针

1.正确灵活的运用指针,可以有效地表示复杂的数据结构,可以动态分配内存,方便地使用字符串,有效而方便地使用数组,再调用函数时能获得1个以上的结果。2)是一种”无脑“的代替文本替换;一般不在最后加分号,如果加分号会编译报错,因为它会把”****;指针变量和指针所指向的空间必须确定,如果不确定,该指针叫野指针或者疯指针,要杜绝。的文本替换、展开宏定义的效率比函数高,宏会消耗空间替换时间,宏的复用性低。(1)基类型:将来定义的指针变量所装的地址什么地址;(1)根据指针变量中的值,去内存中定位;

2025-05-06 09:01:58 360

原创 嵌入式学习的第十二天-函数

在定义一个变量前可加register,这这个变量就被称为寄存器,为了提高对变量的读写度;4) 在两个或多个具有包含关系的作用域中定义的同名标识符,外层标识符在内层不可见(就。静态生存期为其包括全局变量或静。4.数组名作为函数实参时,不是把数组元素的值传递给形参,而是把实参数组的首元素的地址。1.二维数组作为函数参数传递,行数无法直接使用,可以在主函数中写好传递过去,列数必。1)静态变量,在局部变量前使用,把局部变量的生存期变为静态生存期;2.全局变量在静态区或全局区,没有对其初始化,在开辟空间自动清零。

2025-04-29 20:37:25 738

原创 嵌入式学习的第十一天-函数

注:递归调用需要一个结束的条件,要不然会让程序崩溃陷入死循环,原因是函数每次调用都需。要往栈里返回地址,栈的空间是有限的,递归调用会很占内存,一次递归需要一次空间分配,能用。(2)当使用数组作为参数传递时,需要传递数组的地址名,即数组首元素的地址,即为指针传。递,能在被调函数中修改主调函数,并且这样的传递方式,可以提高效率。(1) 传递两个参数:数组的数组名和数组元素的个数。3. 数组作为函数参数传递。

2025-04-28 18:59:42 133

原创 嵌入式学习的第十天-函数

1.无参函数定义的一般形式类型标识符 函数名()声明部分语句部分2.有参函数定义的一般形式类型标识符 函数名(形式参数表列)声明部分语句部分注: 1.函数类型如果不写默认为int型2.返回值类型与函数类型不一致,将返回值强制类型转换为函数类型3.函数的作用:降低耦合性,提高代码的复用性。

2025-04-27 18:32:14 515

原创 嵌入式学习的第九天-二维数组

一般形式:数组名[常量表达式][常量表达式];

2025-04-25 18:56:33 252

原创 嵌入式学习的第八天-字符数组

char 数组名 [元素个数]注:末尾加 \0,字符串的结束标志。

2025-04-24 17:47:43 637

原创 嵌入式学习第七天-一维数组

求a[-1],此时会造成数组越界访问,会改掉其原有位置的数据。1.数组的定义方式:类型说明符 数组名 [常量表达式]3.冒泡排序:相邻两个元素两两比较,小的放前,大的放后。没有给定初值的元素,其初始化值为0。2.选择排序:合适的位置放合适的数。2.数组的引用:数组名 [下标]数组可以被初始化,但不能被赋初值。二分查找法的前提是排序已经完成。(3)默认初始化:可省列表维度。查找的目的是为了访问元素。排序的目的是为了查找。

2025-04-23 23:15:56 221

原创 嵌入式学习的第六天-循环结构

循环三要素:1.循环变量必须初始化;2.循环条件;3.有使循环趋于结束的语句;

2025-04-23 18:02:21 373

原创 嵌入式学习第五天-选择结构程序设计

关系运算”实际上是一种“比较运算”,将两个值进行比较,判断其比较的结果是否符合给定的条件,如果满足给定条件,则该关系表达式的值为真,如果不满足,则为假。1.关系运算符及其优先次序2.关系表达式用关系运算符将两个表达式连接起来的式子,称关系表达式。关系表达式的值是一个逻辑值,表示”真“或”假“,在c语言中,以”1“代表”真“,以”0“代表”假“。

2025-04-21 21:37:06 312

原创 嵌入式学习第四天-顺序程序设计

#x (打印十六进制前的ox) %#o (打印八进制前的o)%m.nf m:总宽度,包含小数点本身所占宽度 n:小数点后n位有效数字,四舍五入。%%(输出%)%p(取地址)作用:格式化字符串输入,一般形式为:scanf(格式控制,地址表列表),其中&为取地址。:1)%d为占位符,若有俩个占位符却只有一个参数,则第二个占位符会输出随机数。(2)printf格式字符:%u %d %o %x (按无符号类型解释)数的十位作为新数的十位,将第一个数的十位作为新数的个位,打印该新数。

2025-04-20 19:44:24 349

原创 嵌入式学习第三天-字符串与运算符

左值:(left value\locatiable)放在赋值运算符左边的\可被取地址的叫左值。右值:(right value\readable)放在赋值运算符右边的\不可被取地址的叫右值。(4) 符号位扩展:小数据放入大空间,补符号位,正数补0,负数补1。(3)临时变量\匿名变量:被临时开辟出来的空间,使用后会被回收;(3) 赋值是内存空间的拷贝,若空间一样,可以直接拷贝。1.算术运算符:+ 、-、 *、 /、 %、 ++、--i++:先用再加,开辟了临时变量;2.赋值运算符:= 、+=、-=、*=、/=

2025-04-17 20:41:24 335

原创 嵌入式学习第二天-数据类型

常量:程序运行过程中,其值不发生变化的量。变量:程序运行过程中,其值发生变化的量。发生变化的根本原因在于任何变量都有对应内存空间,空间地址改变,值也发生变化标识符:由数字、字母、下划线组成,不能以数字开头,不能与C语言关键字重名。二、基本数据类型。

2025-04-17 19:54:07 742

原创 嵌入式学习第一天-Linux 基础

5)输入:wq保存退出;(2)Liunx/目录下存放系统文件,普通用户没有权限修改,创建,删除文件。ls-a:查看当前目录下所有文件,包括隐藏文件(以.开头)10.mv:完成文件移动(剪切),可以用作修改文件名。ls-l:产看当前目录下所有文件的详细信息。9.cp:完成文件拷贝,拷贝文件夹需要加—rf选项。13.gcc编译器:./a.out:执行文件。功能:能查看当前目录下所有的文件。3.rmkdir命令:删除空目录文件。2.mkdir命令:创建空目录文件。5.rm 命令:删除普通文件。

2025-04-17 19:19:16 124

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除