自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Qt——信号和槽

信号和槽机制概述内存管理机制信号和槽Qt5连接信号方式Qt4连接信号方式自定义信号槽概述所谓信号槽,实际就是观察者模式。当某个事件发生之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号(signal)。这种发出是没有目的的,类似广播。如果有对象对这个信号感兴趣,它就会使用**连接(connect)函数将想要处理的信号和自己的一个函数(称为槽(slot))绑定来处理这个信号。**也就是...

2019-02-13 00:05:48 362

原创 Qt——窗口部件QWidget 按钮QPushButton

Qt编程窗口部件基础窗口部件QWidgetQPushButton按钮常用属性和方法:信号常见用法文本图标位置和大小的设置按钮信号连接窗口部件基础窗口部件QWidgetQWidget类是所有用户界面对象的基类。QWidget继承自QObject类和QPaintDevice类。QObject是所有支持Qt对象模型的对象的基类,QPaintDevice类是所有可以绘制的对象的基类。几乎所有的部...

2019-02-12 22:11:38 5148

原创 剑指Offer——数组中只出现一次的数字

剑指Offer——数组中只出现一次的数字题目描述解题需要的必备知识vector容器1、获取vector的长度2、vector元素索引异或操作解题思路C++源码题目描述一个整型数组里除了两个数字之外,其他的数字都出现了偶数次。请写程序找出这两个只出现一次的数字。解题需要的必备知识vector容器vector容器将元素置于一个动态数组中加以管理,可以随机存取元素。在尾部非常快速地添加或移除...

2019-01-21 19:46:23 245

原创 C++入门——多态

2019-01-18 19:32:59 156

原创 C++入门——静态成员变量、静态成员函数、this指针、友元函数、运算符重载

静态成员变量static成员变量属于类,不属于某个具体对象,即使创建多个对象,也只为static分配一份内存static成员变量必须在类声明的外部初始化static在类的外面初始化时分配内存,即没有在类外初始化的static成员变量不能使用一个类中可以有一个或多个静态成员变量,所有对象都共享这些静态成员变量静态成员函数静态成员函数只能访问静态成员this指针隐藏于普通成员...

2019-01-16 23:07:59 286

原创 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 470

原创 1.3知识点总结——数据库SQLite

sqlite3 *数据类型首先要定义一个sqlite3的对象sqlite3 *database_;打开数据库int sqlite3_open(文件名, sqlite3 **)需要传入两个参数,一是数据库文件名,比如:database.db。 文件名不需要一定存在,如果此文件不存在,sqlite 会自动建立它。函数返回值表示操作是否正确,如果是SQLITE_OK 则表示操作正常。关...

2019-01-04 00:15:31 178

原创 僵尸进程

2019-01-02 23:12:17 93

原创 拾遗——进程创建fork

进程和程序的区别?程序是放到磁盘的可执行文件进程是程序执行的实例什么是进程?进程是一个具有一定独立功能的程序的一次运行活动。具备自己的地址空间和执行状态。进程创建fork函数#include <unistd.h>pid_t fork(void)fork被调用一次,返回两次,父进程和子进程都返回一次在父进程中,fork返回新创建的子进程的PID;在子进程中...

2018-12-28 15:31:30 112

原创 排序算法——希尔排序

希尔排序,也称递减增量排序算法先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为d1的倍数的记录放在同一个组中,在各组内进行直接插入排序。取第二个增量d2<d1重复上述的分组和排序,直至所取的增量dt=1(dt<dt-l<…<d2<d1),即所有记录放在同一组中进行直接插入排序为止。希尔排序的时间复杂度与增量序列的选取有关,例如...

2018-12-27 23:12:45 171

原创 Linux系统编程——进程间通信

Linux系统编程——进程间通信进程间通讯为什么进程间要通信数据传输资源共享通知事件进程控制管道通信什么是管道管道类型无名管道无名管道读写命名管道创建操作管道关闭共享内存实现创建映射解除映射共享内存控制消息队列持续性键值打开/创建发送消息接收消息队列控制信号通信killsignalalarmsigaction进程间通讯为什么进程间要通信数据传输一个进程需要将它的数据发送给另一个进程资源共...

2018-12-25 23:57:03 204

转载 排序算法——快速排序

2018-12-24 23:05:09 130

原创 排序算法——冒泡排序

冒泡排序每执行一次内部for循环,将当前数组长度为len-i-1的数组中最大的元素交换到末尾一共执行len-1次外循环,完成所有排序void BubbleSort(int *a, int len){ int i, j; for (i = 0; i < len - 1; i++) //将最大元素沉底的次数为len-1 { for (j = 0; j < len - ...

2018-12-22 20:00:16 395

原创 Linux系统编程——文件

Linux系统编程——文件Linux下一切皆文件Linux文件分类Linux文件属性系统调用Linux文件描述符Linux下一切皆文件操作系统的五大功能之一就是对文件管理在现代操作系统中,要利用大量的程序和数据,由于内存容量有限,而且不能长期保存,于是把这些数据以文件的形式放在外存中,需要的时候再将它调入内存,从此就有了文件系统。负责管理在外存上的文件,并把存取和共享、保护等手段提供给用户。...

2018-12-21 22:31:16 204

原创 排序算法——选择排序

插入排序对于未排序数据(右手抓到的牌),在已排序序列(左手已经排好序的手牌)中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。  具体算法描述如下:从第一个元素开始,该元素可以认为已经被排序取出下一个元素,在已经排序的元素序列中从后...

2018-12-19 19:42:03 107

原创 排序算法——插入排序

插入排序对于未排序数据(右手抓到的牌),在已排序序列(左手已经排好序的手牌)中从后向前扫描,找到相应位置并插入。  插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。  具体算法描述如下:从第一个元素开始,该元素可以认为已经被排序取出下一个元素,在已经排序的元素序...

2018-12-19 09:26:30 100

原创 嵌入式C语言入门——二叉树

数据结构之树结构树的定义树的操作二叉树的定义特殊的二叉树定义性质性质1性质2性质3性质4性质5树的定义树结构是非线性结构组织数据树结构组织起来的数据应当具有层次关系树是由 n ( n ≥0 ) 个结点组成的有限集合如果 n = 0,称为空树如果 n > 0,则:有一个特定的称之为根(root)的结点,它只有直接后继,但没有直接前驱除根以外的其它结点划分为 m (m ≥0...

2018-12-17 23:47:32 546

原创 编程题——将两个有序的顺序表合并成一个有序的顺序表

题目要求存在两个有序的顺序表,将两个有序的顺序表合并成一个大的有序的顺序表解题思路假设有两个有序的顺序表s1和s2并申请一块s3用于存放最终顺序依次比较s1和s2,将值小的数存入s3,并将其下标向后挪一个元素直到其中一个顺序表走到最后将剩下的顺序表所有元素添加到s3末尾代码实现Seq *MergeSeq(Seq *s1, Seq *s2){ //入口参数检测...

2018-12-15 15:02:11 15562 6

原创 嵌入式C语言入门——顺序表

顺序表用一组连续地址的内存单元存储整张线性表,称为顺序存储结构,这种存储结构下的线性表叫做顺序表有唯一的表名来标识该顺序表内存单元连续存储,一张顺序表要占据一块连续的内存空间数据顺序存放,元素之间有先后关系定义顺序表结构typedef struct _seq{ Data *pData; // 顺序表的存储空间 int maxSize; // 最大存储空间 in...

2018-12-14 19:37:48 270

原创 编程练习——停车场

项目要求问题描述:停车场是一个能放 n 辆车的狭长通道,只有一个大门,汽车按到达的先后次序停放。若车场满了,车要停在门外的便道上等候,一旦有车走,则便道上第一辆车进入。当停车场中的车离开时,由于通道窄,在它后面的车要先退出,待它走后在依次进入。汽车离开时按停放时间收费。...

2018-12-13 21:10:46 1461

原创 嵌入式C语言入门——队列(顺序队列)

数据结构之队列顺序队列构造顺序队列顺序队列的初始化判断队列是否满判断队列是否为空顺序队列的入队顺序队列的出队顺序队列的读取顺序队列存放数据的队列数组当做收尾相接的表处理(对长度进行SIZE取余作为数组下标)若定义队列数组长度为SIZE,能存放数据的只有SIZE-1个元素队头,队尾指针从前进时从SIZE-1,直接进到0队列满时,若rear向前进一步则会与front相遇队头指针向前一...

2018-12-12 22:50:28 598 1

原创 嵌入式C语言入门——栈(链式栈)

数据结构之链式栈链式栈链式栈的定义链式栈操作的实现链式栈初始化链式栈入栈链式栈出栈链式栈初始化链式栈链式栈无栈满问题,空间可以扩充插入与删除仅在栈顶处执行链式栈的栈顶在链头链式栈的定义 //定义链式结点typedef struct _node{ Data data; //结点数据 struct _node *next; //结点链指针}Node;typedef ...

2018-12-11 20:36:17 343

原创 嵌入式C语言入门——队列(链式队列)

数据结构之队列队列定义队列结构队列的初始化队列的进队判断队列是否为空队列的出队队头获取数据队列队列是只允许在一端删除,在另一端插入的顺序表允许删除的一端叫队头(front),允许插入的一端叫队尾(rear)先进先出(FIFO)定义队列结构//定义链式结点typedef struct _node{ Data data; struct _node *next;}Node;...

2018-12-11 20:35:51 574

原创 嵌入式C语言入门——栈(顺序栈)

数据结构之顺序栈顺序栈栈的主要操作顺序栈的初始化顺序栈的入栈顺序栈的出栈顺序栈的取栈顶顺序栈只允许在一端插入和删除的线性表允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom)特点:后进先出(LIFO)//定义顺序栈的结构体typedef struct _stack{ Data data[SIZE]; //栈数组 int top; //栈顶指针}St...

2018-12-11 18:24:19 741

原创 嵌入式C语言入门——循环链表、双链表、循环双链表

循环链表、双链表、循环双链表循环链表循环链表的创建循环链表的头插循环链表的尾插循环链表的任意位置插入循环链表按位置删除循环链表的逆序循环链表的销毁双链表双链表的创建双链表的头插双链表的尾插双链表按任意位置插双链表按位置删除双链表的逆序双链表的销毁双向循环链表双向循环链表的创建双向循环链表的头插双向循环链表的尾插双向循环链表的按任意位置插双向循环链表的按任意位置删除双向循环链表的逆序双向循环链表的销...

2018-12-10 23:19:37 1149

原创 嵌入式C语言入门——数据结构之单链表(带头结点的单链表)

单链表链表单链表的创建1. 首先定义头结点和链表结点的结构体2. 创建一个空链表单链表的操作数据插入头插尾插任意位置插数据删除删除指定位置元素删除指定内容链表逆序打印链表销毁链表链表包括一个“头指针”变量,其中第0个结点称为整个链表的头结点,头结点中存放一个地址,该地址指向一个元素,头结点一般不存放具体数据,只是存放第一个结点的地址。链表中每一个元素称为“结点”,每个结点都由两部分组成:存放...

2018-12-08 10:25:19 814

原创 嵌入式C语言入门——Makefile工程管理

MakefileMakefile工程管理Makefile语法Makefile文件由三相基本内容组成。伪目标Makefile的进化之一Makefile的进化之二——使用变量Makefile的进化之三——使用函数常见函数Makefile的进化之四——多文件makeMakefile的进化之五——自动变量&模式匹配Makefile的进化之六——工程模板Makefile工程管理通过输入命令"m...

2018-12-04 16:18:36 492

原创 嵌入式C语言入门——静态库&动态库

静态库静态库,所有的库包含在最终可执行文件中,占用空间大,运行速度快.静态库一般以lib开头命名,以.a后缀结尾静态库的制作1. 把所有需要的.c源文件生成对应的.o文件(不包括main函数)2. 使用工具将所有.o文件打包生成静态库ar rcs lib库名.a mul.o add.o sub.o3. 编译的时候添加静态库gcc 1.c -o 1.o libmylib.a //库文...

2018-12-03 22:52:50 803

原创 编程题——虚数求和(简单结构体的应用)

结构体知识回顾结构基础知识一些结构体的使用误区两种不同函数参数定义的函数定义结构体,仿照int求和函数利用结构体 指针重新编写结构基础知识C的聚合数据类型(aggregate data type) 能够同时存储超过一个的单独数据.C提供了两种类型的聚合数据类型,数组和结构.数组是相同类型的元素的集合,它的每个元素是通过下标引用或指针间接访问来选择的.结构也是一些值的集合,值成为它的成员...

2018-12-02 20:26:17 3857

原创 嵌入式C语言入门——内存管理

内存管理程序结构内存分配方式内存管理函数mallocrealloccallocmemsetfree堆和栈的区别管理方式不同空间大小不同是否产生碎片增长方向不同分配方式不同分配效率不同程序结构栈区堆区数据区未初始化的全局,静态数据初始化的全局,静态数据代码区内存分配方式静态分配代码区数据区动态分配栈区:系统分配堆区:程序员调用malloc系列函数分配...

2018-11-30 19:18:07 309

原创 嵌入式C语言入门——关键字&宏

C关键字预处理宏函数宏的有效范围撤销宏内置宏条件编译ifdef#与##关键字StaticStatic修饰局部变量Static修饰全局变量Static修饰函数externconstconst修饰一般变量const修饰数组==const修饰指针==const修饰函数参数const修饰函数返回值typedeftypedef给结构体类型定义别名typedef给指针类型定义别名==**typedef与#de...

2018-11-30 19:16:46 590

原创 编程题——贪吃蛇

// 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 478

原创 嵌入式C入门——结构体内存对齐模式

知识点回顾关于找最大公共子串的两种解题方法结构体的定义(3种)结构体变量的定义与使用变量访问结构体成员 .指针访问结构体成员 ->结构体内存对齐模式原则1:数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员的对齐按照#pragma pack指定的数值和这个数据成员自身长度中,比较小的那个进行...

2018-11-27 16:46:32 355

原创 编程题——简单的数据加密

某个公司采用公用电话传递数据信息,数据是小于8位的整数,为了确保安全,在传递过程中需要加密,加密规则如下:首先将数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字,最后将第一位和最后一位数字交换。 请任意给定一个小于8位的整数,然后,把加密后的结果在控制台打印出来。题目要求:A:数据是小于8位的整数定义一个int类型的数据int number = 123456;B...

2018-11-25 20:59:55 2232 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 384

原创 嵌入式C语言入门——指针

指针指针的定义指针的使用指针变量的取值指针变量的加减指针递增/递减NULL指针指针数组指向指针的指针传递指针给函数从函数返回指针指针的定义指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址。变量明前加*表明内部存的数字代表某个空间的地址变量中存的地址是其他空间的地址,我们还需要知道那个空间中的存的数据是什么类型的类型变量是变量空间中的地址代表的空间存的数据类型type...

2018-11-23 10:28:21 316

原创 嵌入式C语言入门——函数

函数定义函数的定义就是函数体的实现编写函数存根,为尚未编写好的代码占好位置,可以保持程序在结构上的完整性。执行到函数定义尾部时,函数返回(return),返回函数执行的结果。函数声明相当于去掉函数定义中的函数体再加上分号。函数先声明才可以调用,一个函数只可以定义一次,但是可以声明多次。函数声明由函数返回类型、函数名、形参列表组成。形参列表必须包括形参类型,加上参数名称有利于程...

2018-11-21 10:09:50 460

原创 嵌入式C语言入门——表达式求值

2018-11-19 23:12:54 164

原创 嵌入式C语言入门——操作符

2018-11-18 20:45:00 179

原创 嵌入式C语言入门——数据类型(详细分析)

嵌入式C语言开发入门——数据变量变量的四个部分:空间、变量名、变量地址、变量类型C语言标识符命名规则变量的类型整型变量程序中用一个 符号 来代表某一段内存,那对这个符号的操作就是对这一块内存的操作。这个 符号 和 4字节空间,我 叫做 变量,变量是一个整体的概念,符号和空间都是变量的一部分,符号叫变量名,空间叫变量空间。变量的四个部分:空间、变量名、变量地址、变量类型C语言标识符命...

2018-11-16 21:21:00 741

空空如也

空空如也

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

TA关注的人

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