心得总结
文章平均质量分 57
Neo_0
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
嵌入式C语言入门——Linux下的环境配置
嵌入式C环境配置及常用软件介绍嵌入式软件开发常用工具软件开发类常用辅助工具Linux系统初探每日所得合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图...原创 2018-11-11 23:22:53 · 379 阅读 · 0 评论 -
排序算法——选择排序
插入排序 对于未排序数据(右手抓到的牌),在已排序序列(左手已经排好序的手牌)中从后向前扫描,找到相应位置并插入。 插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。 具体算法描述如下: 从第一个元素开始,该元素可以认为已经被排序 取出下一个元素,在已经排序的元素序列中从后...原创 2018-12-19 19:42:03 · 129 阅读 · 0 评论 -
嵌入式C语言入门——顺序表
顺序表 用一组连续地址的内存单元存储整张线性表,称为顺序存储结构,这种存储结构下的线性表叫做顺序表 有唯一的表名来标识该顺序表 内存单元连续存储,一张顺序表要占据一块连续的内存空间 数据顺序存放,元素之间有先后关系 定义顺序表结构 typedef struct _seq { Data *pData; // 顺序表的存储空间 int maxSize; // 最大存储空间 in...原创 2018-12-14 19:37:48 · 321 阅读 · 0 评论 -
编程题——将两个有序的顺序表合并成一个有序的顺序表
题目要求 存在两个有序的顺序表,将两个有序的顺序表合并成一个大的有序的顺序表 解题思路 假设有两个有序的顺序表s1和s2并申请一块s3用于存放最终顺序 依次比较s1和s2,将值小的数存入s3,并将其下标向后挪一个元素直到其中一个顺序表走到最后 将剩下的顺序表所有元素添加到s3末尾 代码实现 Seq *MergeSeq(Seq *s1, Seq *s2) { //入口参数检测 ...原创 2018-12-15 15:02:11 · 15633 阅读 · 6 评论 -
嵌入式C语言入门——循环链表、双链表、循环双链表
循环链表、双链表、循环双链表循环链表循环链表的创建循环链表的头插循环链表的尾插循环链表的任意位置插入循环链表按位置删除循环链表的逆序循环链表的销毁双链表双链表的创建双链表的头插双链表的尾插双链表按任意位置插双链表按位置删除双链表的逆序双链表的销毁双向循环链表双向循环链表的创建双向循环链表的头插双向循环链表的尾插双向循环链表的按任意位置插双向循环链表的按任意位置删除双向循环链表的逆序双向循环链表的销...原创 2018-12-10 23:19:37 · 1241 阅读 · 0 评论 -
Linux系统编程——文件
Linux系统编程——文件Linux下一切皆文件Linux文件分类Linux文件属性系统调用Linux文件描述符 Linux下一切皆文件 操作系统的五大功能之一就是对文件管理 在现代操作系统中,要利用大量的程序和数据,由于内存容量有限,而且不能长期保存,于是把这些数据以文件的形式放在外存中,需要的时候再将它调入内存,从此就有了文件系统。负责管理在外存上的文件,并把存取和共享、保护等手段提供给用户。...原创 2018-12-21 22:31:16 · 239 阅读 · 0 评论 -
排序算法——希尔排序
希尔排序,也称递减增量排序算法 先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。 所有距离为d1的倍数的记录放在同一个组中,在各组内进行直接插入排序。 取第二个增量d2<d1重复上述的分组和排序, 直至所取的增量dt=1(dt<dt-l<…<d2<d1),即所有记录放在同一组中进行直接插入排序为止。 希尔排序的时间复杂度与增量序列的选取有关,例如...原创 2018-12-27 23:12:45 · 199 阅读 · 0 评论 -
排序算法——冒泡排序
冒泡排序 每执行一次内部for循环,将当前数组长度为len-i-1的数组中最大的元素交换到末尾 一共执行len-1次外循环,完成所有排序 void BubbleSort(int *a, int len) { int i, j; for (i = 0; i &lt; len - 1; i++) //将最大元素沉底的次数为len-1 { for (j = 0; j &lt; len - ...原创 2018-12-22 20:00:16 · 428 阅读 · 0 评论 -
嵌入式C语言入门——栈(顺序栈)
数据结构之顺序栈顺序栈栈的主要操作顺序栈的初始化顺序栈的入栈顺序栈的出栈顺序栈的取栈顶 顺序栈 只允许在一端插入和删除的线性表 允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom) 特点:后进先出(LIFO) //定义顺序栈的结构体 typedef struct _stack { Data data[SIZE]; //栈数组 int top; //栈顶指针 }St...原创 2018-12-11 18:24:19 · 785 阅读 · 0 评论 -
嵌入式C语言入门——栈(链式栈)
数据结构之链式栈链式栈链式栈的定义链式栈操作的实现链式栈初始化链式栈入栈链式栈出栈链式栈初始化 链式栈 链式栈无栈满问题,空间可以扩充 插入与删除仅在栈顶处执行 链式栈的栈顶在链头 链式栈的定义 //定义链式结点 typedef struct _node { Data data; //结点数据 struct _node *next; //结点链指针 }Node; typedef ...原创 2018-12-11 20:36:17 · 375 阅读 · 0 评论 -
嵌入式C语言入门——二叉树
数据结构之树结构树的定义树的操作二叉树的定义特殊的二叉树定义性质性质1性质2性质3性质4性质5 树的定义 树结构是非线性结构组织数据 树结构组织起来的数据应当具有层次关系 树是由 n ( n ≥0 ) 个结点组成的有限集合 如果 n = 0,称为空树 如果 n > 0,则: 有一个特定的称之为根(root)的结点,它只有直接后继,但没有直接前驱 除根以外的其它结点划分为 m (m ≥0...原创 2018-12-17 23:47:32 · 584 阅读 · 0 评论 -
1.3知识点总结——数据库SQLite
sqlite3 *数据类型 首先要定义一个sqlite3的对象 sqlite3 *database_; 打开数据库 int sqlite3_open(文件名, sqlite3 **) 需要传入两个参数,一是数据库文件名,比如:database.db。文件名不需要一定存在,如果此文件不存在,sqlite 会自动建立它。 函数返回值表示操作是否正确,如果是SQLITE_OK 则表示操作正常。 关...原创 2019-01-04 00:15:31 · 208 阅读 · 0 评论 -
排序算法——快速排序
转载 2018-12-24 23:05:09 · 153 阅读 · 0 评论 -
Linux系统编程——进程间通信
Linux系统编程——进程间通信进程间通讯为什么进程间要通信数据传输资源共享通知事件进程控制管道通信什么是管道管道类型无名管道无名管道读写命名管道创建操作管道关闭共享内存实现创建映射解除映射共享内存控制消息队列持续性键值打开/创建发送消息接收消息队列控制信号通信killsignalalarmsigaction 进程间通讯 为什么进程间要通信 数据传输 一个进程需要将它的数据发送给另一个进程 资源共...原创 2018-12-25 23:57:03 · 263 阅读 · 0 评论 -
僵尸进程
原创 2019-01-02 23:12:17 · 124 阅读 · 0 评论 -
嵌入式C语言入门——静态库&动态库
静态库 静态库,所有的库包含在最终可执行文件中,占用空间大,运行速度快. 静态库一般以lib开头命名,以.a后缀结尾 静态库的制作 1. 把所有需要的.c源文件生成对应的.o文件(不包括main函数) 2. 使用工具将所有.o文件打包生成静态库 ar rcs lib库名.a mul.o add.o sub.o 3. 编译的时候添加静态库 gcc 1.c -o 1.o libmylib.a //库文...原创 2018-12-03 22:52:50 · 862 阅读 · 0 评论 -
嵌入式C语言入门——队列(顺序队列)
数据结构之队列顺序队列构造顺序队列顺序队列的初始化判断队列是否满判断队列是否为空顺序队列的入队顺序队列的出队顺序队列的读取 顺序队列 存放数据的队列数组当做收尾相接的表处理(对长度进行SIZE取余作为数组下标) 若定义队列数组长度为SIZE,能存放数据的只有SIZE-1个元素 队头,队尾指针从前进时从SIZE-1,直接进到0 队列满时,若rear向前进一步则会与front相遇 队头指针向前一...原创 2018-12-12 22:50:28 · 684 阅读 · 1 评论 -
嵌入式C语言入门——数据结构之单链表(带头结点的单链表)
单链表链表单链表的创建1. 首先定义头结点和链表结点的结构体2. 创建一个空链表单链表的操作数据插入头插尾插任意位置插数据删除删除指定位置元素删除指定内容链表逆序打印链表销毁链表 链表 包括一个“头指针”变量,其中第0个结点称为整个链表的头结点,头结点中存放一个地址,该地址指向一个元素,头结点一般不存放具体数据,只是存放第一个结点的地址。 链表中每一个元素称为“结点”,每个结点都由两部分组成:存放...原创 2018-12-08 10:25:19 · 852 阅读 · 0 评论 -
MarkDown入门语法
MarkDown语法入门标题字体列表表格代码引用分割线图片超链接 标题 在想要设置为标题的文字前面加#来表示 一个#是一级标题,二个#是二级标题,以此类推。支持六级标题。 注意:标准语法一般在#后跟个空格再写文字 字体 加粗 要加粗的文字左右分别用两个*号包起来 斜体 要倾斜的文字左右分别用一个*号包起来 斜体加粗 要倾斜和加粗的文字左右分别用三个*号包起来 删除线 要加删除线的文字左右分别用...原创 2018-11-14 15:53:12 · 278 阅读 · 0 评论 -
嵌入式C语言入门——操作符
原创 2018-11-18 20:45:00 · 202 阅读 · 0 评论 -
嵌入式C语言入门——函数
函数定义 函数的定义就是函数体的实现 编写函数存根,为尚未编写好的代码占好位置,可以保持程序在结构上的完整性。 执行到函数定义尾部时,函数返回(return),返回函数执行的结果。 函数声明 相当于去掉函数定义中的函数体再加上分号。 函数先声明才可以调用,一个函数只可以定义一次,但是可以声明多次。 函数声明由函数返回类型、函数名、形参列表组成。 形参列表必须包括形参类型,加上参数名称有利于程...原创 2018-11-21 10:09:50 · 530 阅读 · 0 评论 -
嵌入式C语言入门——数据类型(详细分析)
嵌入式C语言开发入门——数据变量变量的四个部分:空间、变量名、变量地址、变量类型C语言标识符命名规则变量的类型整型 变量 程序中用一个 符号 来代表某一段内存,那对这个符号的操作就是对这一块内存的操作。 这个 符号 和 4字节空间,我 叫做 变量,变量是一个整体的概念,符号和空间都是变量的一部分,符号叫变量名,空间叫变量空间。 变量的四个部分:空间、变量名、变量地址、变量类型 C语言标识符命...原创 2018-11-16 21:21:00 · 801 阅读 · 0 评论 -
嵌入式C语言入门——程序编译
嵌入式C语言开发入门——程序编译计算机语言发展过程C语言编译步骤GCC编译命令程序执行 计算机语言发展过程 机器语言 二进制数据 汇编语言 操作符 高级语言 语句 计算机唯一能识别的语言是机器语言 C语言编译步骤 预处理(Pre-Processing) 生成预处理文件,后缀名为.i 编译(Compiling) 生成汇编文件,后缀名为.s 汇编(Ass...原创 2018-11-15 09:35:21 · 525 阅读 · 0 评论 -
嵌入式C语言入门——表达式求值
原创 2018-11-19 23:12:54 · 185 阅读 · 0 评论 -
嵌入式C语言入门——指针
指针指针的定义指针的使用指针变量的取值指针变量的加减指针递增/递减NULL指针指针数组指向指针的指针传递指针给函数从函数返回指针 指针的定义 指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址。 变量明前加*表明内部存的数字代表某个空间的地址 变量中存的地址是其他空间的地址,我们还需要知道那个空间中的存的数据是什么类型的 类型变量是变量空间中的地址代表的空间存的数据类型 type...原创 2018-11-23 10:28:21 · 372 阅读 · 0 评论 -
编程题——简单的数据加密
某个公司采用公用电话传递数据信息,数据是小于8位的整数,为了确保安全, 在传递过程中需要加密,加密规则如下: 首先将数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字, 最后将第一位和最后一位数字交换。 请任意给定一个小于8位的整数, 然后,把加密后的结果在控制台打印出来。 题目要求: A:数据是小于8位的整数 定义一个int类型的数据 int number = 123456; B...原创 2018-11-25 20:59:55 · 2273 阅读 · 1 评论 -
编程练习题——数组操作
数组逆序 将字符数组所有元素进行逆序 //实现:最左端和最右端元素交换,直到相遇 void Reverse(char *pStr, int len) { int left = 0; int right = len - 1;//去掉空字符 while(left < right) { char tmp; tmp = *(pStr + left); *(pStr + left...原创 2018-11-24 20:17:28 · 429 阅读 · 0 评论 -
编程题——贪吃蛇
// gcc snake.c -lpthread #include <stdio.h> #include <stdlib.h> #include <time.h> #include <signal.h> #include <termios.h> #include <stdio.h> #include <stdlib.h&原创 2018-11-29 09:09:06 · 510 阅读 · 0 评论 -
嵌入式C语言入门——Makefile工程管理
MakefileMakefile工程管理Makefile语法Makefile文件由三相基本内容组成。伪目标Makefile的进化之一Makefile的进化之二——使用变量Makefile的进化之三——使用函数常见函数Makefile的进化之四——多文件makeMakefile的进化之五——自动变量&amp;模式匹配Makefile的进化之六——工程模板 Makefile工程管理 通过输入命令"m...原创 2018-12-04 16:18:36 · 538 阅读 · 0 评论 -
编程题——虚数求和(简单结构体的应用)
结构体知识回顾结构基础知识一些结构体的使用误区两种不同函数参数定义的函数定义结构体,仿照int求和函数利用结构体 指针重新编写 结构基础知识 C的聚合数据类型(aggregate data type) 能够同时存储超过一个的单独数据. C提供了两种类型的聚合数据类型,数组和结构. 数组是相同类型的元素的集合,它的每个元素是通过下标引用或指针间接访问来选择的. 结构也是一些值的集合,值成为它的成员...原创 2018-12-02 20:26:17 · 3899 阅读 · 1 评论 -
嵌入式C入门——结构体内存对齐模式
知识点回顾 关于找最大公共子串的两种解题方法 结构体的定义(3种) 结构体变量的定义与使用 变量访问结构体成员 . 指针访问结构体成员 -> 结构体内存对齐模式 原则1:数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员的对齐按照#pragma pack指定的数值和这个数据成员自身长度中,比较小的那个进行...原创 2018-11-27 16:46:32 · 400 阅读 · 0 评论 -
嵌入式C语言入门——关键字&宏
C关键字预处理宏函数宏的有效范围撤销宏内置宏条件编译ifdef#与##关键字StaticStatic修饰局部变量Static修饰全局变量Static修饰函数externconstconst修饰一般变量const修饰数组==const修饰指针==const修饰函数参数const修饰函数返回值typedeftypedef给结构体类型定义别名typedef给指针类型定义别名==**typedef与#de...原创 2018-11-30 19:16:46 · 660 阅读 · 0 评论 -
嵌入式C语言入门——内存管理
内存管理程序结构内存分配方式内存管理函数mallocrealloccallocmemsetfree堆和栈的区别管理方式不同空间大小不同是否产生碎片增长方向不同分配方式不同分配效率不同 程序结构 栈区 堆区 数据区 未初始化的全局,静态数据 初始化的全局,静态数据 代码区 内存分配方式 静态分配 代码区 数据区 动态分配 栈区:系统分配 堆区:程序员调用malloc系列函数分配 ...原创 2018-11-30 19:18:07 · 379 阅读 · 0 评论 -
C++入门——const、引用、内联、动态内存分配
C++const、引用、内联、动态内存分配const关键字C++中const修饰的是一个常量define回顾define与const的区别引用使用引用进行数据交换使用引用进行函数传参函数返回值为引用指针引用常引用内联函数动态内存分配C中动态内存分配C++中动态内存分配new申请单个变量空间new申请数组new申请连续空间上的多维数组new申请非连续空间上的多维数组 const关键字 C++中con...原创 2019-01-10 00:55:34 · 527 阅读 · 0 评论
分享