自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 系统编程和32编程题

shell中的基本语法/////if [ ]; then elif [ ]; thenelsefi/////case $a in1)2)*)esac/////while [ ]dodone编写程序1+2+。。+10将结果输入到文件#include <stdio.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#inc

2021-06-25 15:53:25 192

原创 数据库编程之通讯录

Database.c#include "Database.h"int Add(char* name, char* number){ //初始化,绑定 sqlite3 *db; int ret = sqlite3_open("/home/ben/0524/text.db", &db); if(ret != SQLITE_OK) { perror("open error!"); exit(1); } //sql语句 char *error; char sql[1024

2021-05-26 12:17:31 223 1

原创 算法训练自我题解(力扣)

一、92题反转链表Ⅱ/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x)

2021-04-13 23:46:46 131

原创 Linux C 文件编程

Linux下的目录bin:基本的操作命令:ls cddev:设备目录:CD-ROM,打印机lib:共享的连接库和接口root:根目录的主目录boot:操作系统的内核常用的文件类型‘-’ :普通文件d :目录l :链接文件c :字符设备文件b :块设备(硬盘等)p :管道文件f :堆栈文件creat:int create(const char* filename, mode-t mode)filename :创建的文件名mode:创建的模式S_IRUSR :可读S_IWU

2021-03-19 10:41:05 133

原创 QT实现多线程

案例:LED在跳数字的同时,另一个线程在做sleep(也可以是任何)操作,俩线程互不影响。线程结束后发送一个信号让主线程知道次线程结束了,然后将led暂停,并关闭线程。一、需要新建一个类MyThread 继承于QThread在QThread类中有一个虚函数run(),在创建一个新线程后会自动调用所以在MyThread中需要重写run()函数来处理这个线程需要做的事#ifndef MYTHREAD_H#define MYTHREAD_H#include <QThread>//头文件

2021-02-28 10:46:01 213

原创 QT实现UDP

UDP并没有服务器/客户端一说(都是客户端),发送信息只需要将IP/端口输入就可以发送所以只有一个套接字。实现效果:UDPUDP.h#ifndef UDP0612_H#define UDP0612_H#include <QMainWindow>#include <QUdpSocket>#include <QHostAddress>#include <QMessageBox>namespace Ui {class UDP0612;

2021-02-27 11:03:41 908

原创 QT实现TCP

在QT环境下实现TCP通信客户端输入 IP 和 端口号,连接服务器连接成功后,服务器显示客户端基础信息(IP,端口号)在输入框输入信息,发送后即可进行通信。显示框消息不覆盖,输入框发送后清空。实现效果:除ui设计外,代码如下:TCP_ClientTCP_Client.h#ifndef TCP_CLIENT_H#define TCP_CLIENT_H#include <QMainWindow>#include <QTcpSocket>//客户端头文件#inc

2021-02-27 10:52:16 172

原创 C语言杂记

printf:行缓冲:满一行输出① ‘\n’ ② scanfeg:printf(”hello world“);//hello world 不输出while(1);加 换行符 或者后面有 scanf() (共用缓冲区,scanf()前会将里面的显示清空)printf 特殊使用:\033 控制码可控颜色,背景色,闪烁。。。scanf:缓冲区\n问题,清理垃圾eg:printf(”input a: \n“);scanf ("%d",&a);printf (“input char

2021-02-17 18:38:55 145

原创 C语言链表实现简易通讯录

链表实现通讯录功能:1.添加–(输入 姓名,电话)2.删除-- (输入人名,删除该人)3.查询-- (直接打印所有联系人)4.修改-- (输入人名,修改电话)运行效果:代码分主函数块 和 链表块:Linklist.h#ifndef LINKLIST_H_INCLUDED#define LINKLIST_H_INCLUDED//链表节点typedef struct Node{ char name[10];//名字 char data[12];//电话 str

2021-02-09 11:51:34 761

原创 C++C8

强制类型转换C语言中的类型转换隐式类型转换:int myMax(int a,int b){ };调用:myMax(1,’A‘);强制类型转换(显式类型转换):int *p = (int *)malloc(…)typename1 a = (typename2)b;C++里面提供一组可以在不同场合使用的强制转换(本质就是类模板)static_cast(exp)reinterpret_castdynamic_cast//动态的const_caststatic_cast(exp)1.用于

2021-01-31 23:15:41 157

原创 C++C7-模板

模板的概念 所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。这个通用函数就称为函数模板。 C++提供两种模板机制:函数模板、类模板函数模板 template<模板参数列表> <函数返回类型> 函数名(<函数参数列表>) 1、template模板声明 2、<模板参数>可以有一个,也可以有多个,逗号隔开 3、<函数返回类型> 一种就是模板参数 一种就是普通函数 4、&

2021-01-30 20:39:30 133

原创 C++ Class6-虚函数-虚析构-多态-纯虚函数-抽象类-静态联编和动态联编-多态小练习(英雄联盟)

类型兼容性原则-重写重写:发生在继承关系,父类和子类都有相同的函数原型(成员覆盖)重载:同名不同作用(重载的函数原型是不用)相同点:名字相同虚函数语法: virtual<类型> 成员函数(<参数列表>)必须是基类中成员函数,且当基类的某个成员函数定义为虚函数的时候他所有的派生类中与基类虚函数相同(函数原型相同)的函数都是虚函数基类中声明过virtual,派生类中不需要再声明(不用再加virtual)*通常情况下,基类的某个成员函数被定义为虚函数时,要在派生类中对他重

2021-01-29 21:00:27 217

原创 笔试三

简单编程一、有一个数组a[1000]存放0–1000;要求每隔二个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置。以7个数为例:{0,1,2,3,4,5,6,7} 0–>1–>2(删除)–>3–>4–>5(删除)–>6–>7–>0(删除),如此循环直到最后一个数被删除。简单约瑟夫环(注意:个人觉得题目有问题,0-7是8个数,但是题目写7个数)以下是数组实现,数组实现有一种较好理解,就是没第三个就删除(后面的一次往前移一个)但是

2021-01-28 22:57:15 412

原创 undefined reference to ‘vtable for XXX‘

出现此问题的原因:基类中的虚函数没有在派生类中重写;基类中定义虚函数时没有 在末尾加 =0;virtual void show_name() = 0;

2021-01-27 20:28:31 88

原创 C++ C5 -运算符重载-单目(前置,后置)-双目-实现字符串类各种运算符重载

运算符重载 运算符:单目/双目/三目 注意: 1.不能改变优先级,结合性 2.不能改变所需要的操作数 3.不能创建新的运算符单目运算符 单目运算符:++ --(分为前置和后置)前置运算符: 运算符重载本质是一个成员函数; 成员函数方法: <返回值> operator<运算符>(<参数列表>) CPoint operator ++( ); 友元函数 friend <返回值> operato

2021-01-26 19:30:46 674

原创 C++ C4 -继承和派生-继承中的构造与析构-派生类中的static关键字-多继承

继承和派生继承可以用来干什么:可以在已有的类的基础上添加新的变量;可以在已有的类的基础上添加新的功能(函数);可以修改类的方法(不常用)::例如车是父类,衍生出汽车 大巴车两个子类;在父类中有一个开车的方法;但是对于两个字类来讲,开车的方法不同。所以会设计方法的重写(修改类的方法);什么时候用继承?创建一个新类时,这个类和现有的类相似(只是多出一些变量或函数的时候)例如:同样是车的例子,我先有一个车的类,然后要定义一个轿车的类,发现轿车和车有相似(都是四个轮子,都是用方向盘的等等)当你创建多

2021-01-23 20:49:08 155

原创 笔试2

一、使用mkdir命令创建新的目录时,在其父目录不存在时先创建父目录的选项是: -p partent补充:-m (mode) 设定权限 mkdir -m 777 test二、UNIX系统中进程由三部分组成:进程控制块,正文段和数据段。这意味着一个程序的正文和数据是可以分开的,这种分开的目的是为了: 可共享正文,可共享数据,可重入三、编程中设计并发服务器,使用多进程和多线程,请问有什么区别一、定义:进程是分配CPU资源的最小单位线程是程序运行的最小单位二、进程具有独立的堆栈地址空间,线

2021-01-23 19:03:47 466

原创 C++ C3 -深拷贝与浅拷贝-new和delete-初始化成员列表-构造中调用构造-静态static-this指针-友元-const

一、深拷贝与浅拷贝浅拷贝:没有自己写拷贝构造函数,导致程序出现要拷贝的时候调用了默认的拷贝构造函数,在普通的变量上不会有什么影响但是对于指针而言,会造成野指针现象。默认拷贝构造函数,只是单一的复制,在普通变量上就是把数值复制过来,这不会有什么问题,但是涉及到指针,默认拷贝构造函数做的也是仅仅将指针地址复制过来。这就出现问题了,我们希望的是:一开始有一个对象A,然后对象B要来做拷贝。B对象应该重新开辟一块空间存储对象A的那个指针所指向地址中存的数据。但是默认拷贝构造必不会重新开辟空间,仅仅是将B的指针指向

2021-01-22 16:53:57 248

原创 C++ C2-封装-class与struct-构造函数与析构函数-拷贝构造函数-函数重载-内联函数

一、面向对象和面向过程C1中略有讲述面向过程(思想):以什么正在发生为目标(强调的是算法)缺点:不容易维护,灵活性差,不容易扩展,不能复用;面向对象:以什么正在受影响为目标(建模)耦合度:模块与模块存在的联系(越低越好) 多态复用性高,耦合度低二、封装封装:把数据和函数合成一个属性对于封装个人理解就是:一个程序是一辆车,当你需要加装尾翼,到4S店买的尾翼就是一个封装好的零部件。和车并没有太大关系,但也不是完全没有,因为需要“螺丝的位置”是车决定的。封装中的两个部分:成员变量(数据也叫属性

2021-01-20 16:17:41 321

原创 codeblocks:头文件和源文件不能对应,导致在main.cpp中不能调用头文件中的函数

创建新文件时:1.头文件和原文件路径保证相同2.下方Debug,Release勾选 解决问题

2021-01-20 15:14:50 994 1

原创 笔试1

一、计算机内存空间1、栈区 {系统栈(main()函数中),函数栈}存放局部变量(作用域结束自动释放)2、堆区:用户自己申请的,自己释放{未释放会造成内存泄漏}3、静态全局区:静态变量:static修饰,全局变量:作用于所有作用域的变量程序结束释放4、文字常量区:存放字符串常量5、代码区二、空指针和野指针0、0L 、3 - 3(它们都是“integer constant expression”整数常量表达式)以及 (void*)0 等都是空指针常量(注意 (char*) 0 不叫空指针常

2021-01-20 08:52:01 83

原创 C++ C1 -namespace-using-域解析符-const-引用

一、编程语言的演变汇编(低级语言)->Fortran(formula translation)(第一个高级语言)1957年->B ->C语言(Dennis Ritchie 丹尼斯里奇)创造-》C++/java/。。。C语言诞生于贝尔实验室(贝尔实验室的悲酸历史https://baike.baidu.com/item/贝尔实验室/686816?fr=aladdin::AT&T->朗讯->诺基亚)UNIX (Linux前身):https://baike.baidu.c

2021-01-18 14:33:29 254

原创 链表

链表实现//链表各节点typedef struct Node{int data;struct Node *prev;struct Node *next;}Node;// 链表typedef struct{int len;Node *head;Node *tail;Node *me;}LinkList;//创造空节点Node* createNode(int data){Node* ptr;ptr=malloc(sizeof(Node));if(ptr==NULL){put

2020-10-18 15:40:38 214

原创 内存管理,预处理,结构体,联合体,枚举

内存分配方案1.未初始化的全局变量---- .bss段2.初始化的全局变量----- 。data段3.常量数据------- 。rodata段4.rodata段是在多个进程中共享的5.栈用于存储临时变量和函数参数宏定义1.宏定义是用宏名代替一个字符串,是简单置换,不做正确性检查2.宏定义不需要行末加分号3.#define命令出现在程序中函数的外面,宏名的有限范围是定义命令之后到本源文件结束4.可以用#undef 命令终止宏定义的作用域5.对程序中用双引号括起来的字符串内的字符,不进行

2020-10-18 12:11:56 115

原创 Linux C函数,数组,指针,复杂声明

函数的递归调用递归函数是指“自己调用自己”的函数,函数不可能不停的调用自己,所以递归函数一定具备结束条件例一:递归函数binary Search()实现二元搜索算法,在排序好的数组中找到特定元素。首先,该函数根据搜索条件比较数组中间的元素,相同就返回该元素指针,不同该函数调用自己,在可能的另一半数组中搜索,一直递归进行,直到找到符合条件的元素。如果数组剩下长度为0,则表示无符合条件的元素。long* binarySearch(long val,long array[],int n){int m=n

2020-09-23 16:52:09 158

原创 LinuxC 数据结构、控制变量

变量变量类型决定着占用内存区的长度,变量名与该起始地址对应。变量类型所占内存空间大小char :1个字节short int :2个字节int :4个字节unsigned int :4个字节float :4个字节double: 8个字节long :4long long :8个字节unsigned long :4个字节char * :4个字节所有类型的指针变量都是4个字节关于bool型:C++中才有,使用时要引用头文件《stdbool.h》printf()格式化参数%d 按

2020-09-22 09:24:53 220

原创 Linux C2

嵌入式文本编辑器vi:按/或:进入底行命令模式 按i进入编辑模式编辑模式:按esc退出下载配置文件 .vimrc,先让电脑联网,进入虚拟机service network restartping www.baidu.comcd~cur1 http://note.kissbug.com/d/b.vimrc > .vimrcvi 的进入vi 文件名vi的退出:w filena...

2020-01-17 08:57:55 259

原创 Linux基础C1

嵌入式Linux开发 概述Window 下每一个盘都有一个根目录Linux 下只有一个根目录 /根用户(root用户)系统设置好权利无限大[root@localhost /]#普通用户(ben)[ben@localhost /]$嵌入式Linux 基础-语句pwd:用于显示该目录的完整路径[ben@localhost app]$ pwd/home/appls:显示该目录下的...

2020-01-13 16:51:19 220

空空如也

空空如也

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

TA关注的人

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