- 博客(43)
- 收藏
- 关注
原创 (c++笔记)第三十三节课:设计模式(部分)
单例模式:懒汉式,饿汉式。工厂模式。抽象工厂模式。建造者模式简单版。建造者模式。原型模式。组合模式。代理模式。装饰模式。适配器模式。享元模式。桥接模式。 外观模式。 观察者模式...
2022-08-01 21:19:16
333
原创 (c++笔记)第三十二节课:*_cast类型转换,算法
类型转换:static_cast ,reinterpret_cast ,const_cast ,dynamic_cast算法:遍历算法,查找算法,排序算法,拷贝替换
2022-07-29 20:31:44
255
原创 malloc与new区别
其实在使用的大部分场景下,两者是可以通用的,但是我们还是要知道他两的区别:malloc:只负责开辟内存,没有初始化功能,需要用户自己初始化;如:int p1 = (int)malloc(sizeof(int)*100);=> 开辟400个字节的内存,相当于包含100个整形元素的数组,没有初始化。new:不但开辟内存,还可以进行初始化。如:new int(10);表示在堆上开辟了一个4字节的int整形内存,初始值是10,再如new int[10] ();表示在堆上开辟了一个包含10个整形元素的数组,初始值都为
2022-07-10 10:42:39
115
原创 (C++笔记)第二十一节课:内联函数到对象的构造与析构
一:内联函数二:c++中默认参数三:占位参数四:函数重载五:函数重载的二义性六:c++的动态内存分配七 :多维数组的创建和释放练习:八 :类和对象
2022-07-05 19:26:01
338
原创 VMware虚拟机下Ubuntu18.04学校宽带拨号连接网络
1.先确保电脑win下已经连接宽带2.打开虚拟机设置--------->选网络适配器------->选仅主机模式3.点开带有问号的有线连接的小图标,关闭连接,在重新连接,就会成功如果出现问题:1.有线连接的小图标消失了:...
2022-04-08 12:27:16
1490
原创 Vmware下Ubuntu18.04虚拟机右上角的网络图标消失连不上网络,找回方法。
一 . 重新找回图标,先执行以下三段代码:在终端(Terminal)下输入:sudo service network-manager stopsudo rm /var/lib/NetworkManager/NetworkManager.statesudo service network-manager start二 . 重新配置:1.编辑:同样在终端(Terminal)下输入:sudo vi /etc/NetworkManager/NetworkManager.conf
2022-04-08 12:20:08
5486
13
原创 (笔记)第十九节课:数据库
一 数据库1.1 在ubuntu中安装数据库sudo apt-get install sqlite3 libsqlite3-dev安装测试:输入sqlite3,如果能够成功进入数据库,说明安装成功:1.2 数据库的操作1.2.1 数据库命令的分类系统命令:是以.开头的命令,主要用于对当前数据库操作注意:系统命令后面不能加;普通命令:是以;结尾的命令,主要对数据库中的表进行操作注意:普通命令前不能加 .1.2.2 常用的系统命令.help:查看帮助信息...
2022-04-08 11:04:12
136
原创 (笔记)第十八节课:wirkshark抓包工具&TCP循环服务器
一 wirkeshark 抓包工具1.1 软件介绍wireshark用于抓取经过我当前主机网卡的所有的数据包并且会自动分析数据包网络管理员使用wireshark来检测网络问题网络安全工程师使用wireshark来检查资讯安全相关的问题开发者使用wireshark来为新的通讯协定除错。普通使用者使用wireshark来学习网络协议的相关知识。1.2 软件安装安装此工具,一路下一步即可,有选择插件usbpcap需要打勾安装一下。1.3 wireshark工具的使用第一
2022-04-08 10:57:26
2875
原创 (笔记)第十七节课:信号灯&网络编程
一 IPC通信之 信号灯集信号灯集:是在内核空间的信号灯的集合1.1 信号灯集函数接口1.semget头文件:#include <sys/types.h> #include <sys/ipc.h> #include <sys/sem.h>原型:int semget(key_t key, int nsems, int semflg);功能:创建或者打开一个信号灯集参数: key:信号灯集的秘钥(和共享内存,消...
2022-04-07 18:13:08
787
原创 (笔记)第十六节课:进程间通信
一 进程间通信:IPC全称Inter-Process Communication 是指进程间通信。主要是利用内核空间,来完成两个进程或者多个进程之间的资源和信息的传递。进程间通信方式(7大类)1.传统通信方式:1.无名管道 使用的队列2.有名管道 使用的队列3.信号 异步的方式2. IPC通信方式(第五代操作系统):1.消息队列...
2022-04-07 09:35:45
202
原创 (第十五节课)线程
一 线程线程的概念:线程是进程的进一步抽象。进程包括两个集合。一个资源集合,一个线程的集合,进程是资源分配的最小单位,线程是系统调度的最小单位。每个进程中必然包含一个线程,那么这个线程被称作主线程。线程的本质是一个在运行的线程函数。线程也属于并发,也会拥有自己的资源:如:Pc程序计数器,时间片,堆,栈,线程号等。线程本身并不会去申请资源,而是共享进程的资源。线程也被称为轻量级的进程,线程间共享全局变量,使得通信时会很方便。线程不属于标准C库函数,也不属于系统调用,而是属于第三方库,libpthrea
2022-04-04 06:21:41
251
原创 (第十四节课)缓冲区&进程
一 IO1.1 fseek头文件: #include <stdio.h>原型:int fseek(FILE *stream, long offset, int whence);功能:读写指针的偏移参数: stream:目标文件流指针 offset:如何偏移,偏移多少 如果为负数,代表向前偏移,如果偏移出了文件的开头,会返回报错。 如果该数为正数,代表向后偏移,如果偏移除了文件的末尾,会扩大文件,用'\0'来填,那么此类文件称为空洞文件...
2022-04-03 20:46:00
328
原创 笔记(十三):文件IO与标准IO
文件IO 进程 进程间通信,线程,线程同步,网络编程一 文件IOIO(input output)1.1 学习IO的前提1.为什么要学习IO 嵌入式:由软件控制硬件,嵌入式需要对内存进行操作,和对内核进行操作,来完成操作硬件。2.IO的内容都有什么:主要学习已经提供好的API函数接口3.linux下一切皆文件4.linux是一个多用户多任务的操作系统 ----》进程5.因为IO进程在应用层和内核层之交互,所以说学习时定义过于抽象6.linux操作系统把文件分为两大类
2022-04-03 10:25:23
805
原创 (笔记十二)排序
一 插入排序1.1 直接插入排序思想:依次将后面一个元素和前面所有的元素作比较,选择合适的位置插入。#include <stdio.h> #include <time.h> #include <stdlib.h> void InsertSort(int *a,int length) { int i,j ,tmp; for(i = 1; i < length;i++) { tmp = a[i]; ...
2022-02-28 11:34:07
58
原创 (笔记十一)队列与树
一 队列1.1 队列的概念队列的性质:先进先出(FIFO)队列的操作入队出队1.2 链式队列为了实现队列的先进先出的原理,链式存储里面可以采用头插法和尾删法或者尾插法和头删法实现功能,但是尾插和尾删都需要将链表遍历一次,效率比较低所以,我们可以定义两个指针变量,一个front保存头结点的地址,另一个rear保存最后一个结点的地址入队操作时将新结点插入到rear对应的结点的后面,然后rear保存最后一个结点的地址,出队操作就是将头结点后面的结点删除。1.2.1 链式
2022-02-27 19:40:43
182
原创 笔记(九)单链表与单循环链表
一 单链表1.1 概念单链表:线性表的链式存储线性表:一对一的关系链式存储:不需要在内存中开辟一段连续的内存的空间,所以每一个数据不再是一个基本数据,而是由两部分组成,数据域和指针域,数据域保存数据,指针域保存下一个结点的地址。单链表:就是单向链表,前者结点可以找到后者结点,但是后者无法找到前者。1.2 单链表的操作1.2.1 定义结点结构体C自动换行#ifndef _LINKLIST_H_#define _LINKLIST_H_#includ.
2022-02-23 20:15:56
421
原创 笔记(十)双向循环链表与栈
一 双向循环链表1.1 概念2.2 操作定义一个结点结构体#ifndef _DOUBLELIST_H_#define _DOUBLELIST_H_#include <stdio.h>#include <stdlib.h>typedef int DataType;//定义结点结构体typedef struct doublelist{ DataType data; struct doublelist *fr...
2022-02-23 20:09:48
102
原创 (笔记7)makefile与gdb调试
一 分文件main.c:#include "func.h"int main(int argc, const char *argv[]){func();printf("a + b = %d\n",add(100,200));return 0;}func.c:#include "func.h"void func(){printf("hello world!\n");}int add(int x,int y){return x + y;}
2022-02-22 20:09:18
991
原创 笔记(8)数据结构
数据结构一 课程体系概念顺序表,单链表,单向循环链表,双向循环链表,队列,栈,树图算法:查找算法,排序算法二 为什么要学习数据结构1. 程序 = 数据结构 + 算法数据结构体是写代码非常重要的东西,也是一门基础课程2. 任何一门编程语言,数据结构都是非常重要的组成部分比如 c++里面的STL(标准模板库)数据库的本质就是数据结构的内容编写的数据的图的遍历算法就是人工智能的基础红黑树会再驱动中体现3.我们之前已经学完c语言基础,难度较大的地方:指针,数组,结构体,函数,数.
2022-02-10 23:05:20
226
原创 (笔记6)函数指针,回调函数,结构体,共同体
一 函数指针函数指针:本质是一个指针,指向一个函数我们定义的函数名其实就是一个指针,保存当前函数代码区的首地址函数指针学习的目的就是想解决能不能定义一个指针,可以像函数名一样对当前函数进行调用函数指针定义的格式:返回值类型(*变量名)(参数);函数数值真的作用:将一个函数作为参数传递给另一个函数是需要定义成函数指针,也称之为回调函数#include <stdio.h>typedef unsigned char uchar; //用uchar表示 unsigned cha...
2022-01-25 09:56:43
375
原创 (笔记5)指针与二位数组,指针数组与数组函数,指针函数
一 指针和二维数组#include <stdio.h>int main(int argc, const char *argv[]){ int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12}; //&a:二维数组名取地址表示地址的升级,将行指针变化为指向整个数组的指针 printf("&a = %p\n",&a); printf("&a = %p\n",&a + 1); printf("a = %p\n",.
2022-01-22 19:17:36
224
原创 (笔记4)数组与指针入门,冒泡排序
一 数组1.1 数组的概念数组:保存一组相同类型的数据不管是几维数组,都是开辟一段连续的内存空间数组是一种构造数据类型(数组,结构体,共用体)1.2 一维数组1.2.1 一维数组的定义<存储类型> <数据类型> <数组名> [数组下标]存储类型:auto,register,static,extern数据类型:基本数据类型:int,char,float....等数组名:是一个标识符,满足标识符的命名规则数组下标:确定数组张元素的个数例如:in
2022-01-20 22:14:52
225
原创 什么是嵌入式?那嵌入式为什么用C语言?为什么不用其他语言?
首先第一个问题:什么是嵌入式?如果你去百度,那么答案是:以计算机应用为核心,软硬件可裁剪的专用计算机系统,对功耗,体积,成本,可靠性有要求的系统。但是我给一个答案:嵌入式开发是在硬件上去移植操作系统,由操作系统去控制资源,给软件提供接口去控制硬件,来提高软件移植性。那嵌入式为什么用C语言?嵌入式最核心的技术是用到了移植操作系统。嵌入式开发最核心的是操作系统。在操作系统上做开发,在操作系统内做开发。嵌入式应用开发,在操作系统之上做开发,叫上层应用软件开发。嵌入式系统软件
2022-01-18 23:21:08
1680
原创 (笔记3)输入输出函数,控制语句,循环语句,辅助控制关键词,一维数组。
一 输入输出函数1.1 getchar()/putcgar()1.1.1getchar()1.1.2 putchar1.2 gets()/puts()1.2.1 gets()1.2.2 puts()3.3 printf()/scanf()3.3.1 printf()3.3.2 scanf()3.3.3 scanf附加字符3.3.4 scanf输入多个内容以及垃圾字符的处理二 控制语句2.1 概念分支语句:循环语句:2.2 if...else..
2022-01-18 23:12:47
361
原创 C语言ASCII表与字符
ASCII 定义了 128 个字符。分类:一:0-31、127(删除键)是控制字符二:空白字符:空格(32)、 制表符、 垂直制表符、 换行、 回车。三:可显示字符:a-z、A-Z、0-9、~、!、@、、%、^、&、#、$、*、(、)、-、+、{、}、[、]、’、"、<、>、,、?、/、|、\、_、:、;、.,还有顿号、。ASCII表:...
2022-01-17 00:28:11
1011
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人