自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 问答 (1)
  • 收藏
  • 关注

原创 Linux启动过程详解 Xmind导图笔记

参考大佬博客:简要描述linux系统从开机到登陆界面的启动过程Linux启动过程详解Bootloader详解

2023-09-22 17:56:43 343

原创 C语言 指针数组与数组指针

指针就是指针,数组就是数组。文章目录指针数组数组指针指针数组 指针数组是 数组;是存放数据元素为指针的数组。int arr0[10];   //整型数组char arr1[5];   //字符数组int* arr2[4];   //指针数组arr2 是一个数组,有五个元素,每个元素是一个整形指针。数组指针  数组指针是 指针;是指向数组地址的指针,即数组首元素地址。int arr[6][7];   //arr为二维整型数组int (*

2023-09-04 21:20:16 143

原创 Make命令与MakeFile的编写学习

一般来说,你的makefile中的第一个目标是由许多个目标组成,你可以指示make,让其完成你所指定的目标。它指定了"目标"是否重新构建的判断标准:只要有一个前置文件不存在,或者有过更新(前置文件的last-modification时间戳比目标的时间戳新),"目标"就需要重新构建。声明clean是"伪目标"之后,make就不会去检查是否存在一个叫做clean的文件,而是每次运行都执行对应的命令。重编译某些文件,而不是整个工程,而又有的时候你有几套编译规则,你想在不同的时候使用不同的编译规则,等等。

2023-09-04 21:10:55 474

原创 C++动态内存管理知识总结(详细思维导图)

进程内存分布 为什么要分区?malloc/calloc/relloc、free函数详解。new和malloc。内存泄漏。如何一次在堆上申请4G的内存?

2023-09-04 21:06:01 175

原创 C++入门基础知识总结(超详细思维导图)

引用和指针的区别、宏的优缺点、C++中替代宏、C和C++的区别

2023-09-04 17:02:22 342

原创 网络报文抓包分析——ARP

通过wireshark和tcpdump分别在 win 和 linux环境对进行抓包分析。

2022-11-22 10:36:29 2027 1

原创 网络报文抓包分析——ICMP

通过wireshark和tcpdump分别在 win 和 linux环境对进行抓包分析。

2022-11-22 10:06:37 2370

原创 <string.h>字符操作函数的实现(strcpy、strcat、mem)

拷贝函数:strcpy、memcpy、memmove、strncpy;拼接函数:strcat、strncat;其他:memset、strlen、memset

2022-09-19 11:55:12 236

原创 堆 与 堆排序

堆概念与性质、堆的调整、向下调整、堆的插入(向上调整)、堆的创建、堆的删除、堆排序、代码实现、TOP-K问题、优先级队列 priority_queue

2022-09-05 11:48:51 377

原创 C++ 类型转换(static_cast、dynamic_cast、reinterpret_cast、const_cast)

C语言的类型转换、C++的类型转换、static_cast、const_cast、reinterpret_cast、dynamic_cast、RTTI、单参构造函数的类型转换功能、explicit

2022-09-03 00:56:17 865

原创 C++笔试题复习

模板、类和对象、构造和析构、成员初始化列表、拷贝构造函数、this指针(运算符重载)、static、友元函数、空类、const

2022-09-02 23:27:35 435

原创 详解TCP如何确保可靠传输(确认应答,重传机制,滑动窗口,流量控制)

TCP的可靠传输:检验和,确认应答(序列号),重传机制,超时重传、RTO超时时间设置、快速重传、选择确认 SACK、D- SACK,滑动窗口、窗口大小、流量控制、窗口关闭 / 探测、糊涂窗口综合症、累计确认、延迟应答、捎带应答...

2022-09-01 12:09:11 2899 1

原创 C语言错题总结

16位、32位、64位各类型大小格式输出 `if else`匹配,`||` 运算 指针 指针运算 const指针 数组指针 结构体对齐 大小端 数组 二维数组 循环 递归

2022-08-15 18:20:28 571

原创 统计指定字符串中每个单词出现的次数(C++)

字符串形式提供给你一段英文文章,请编写一个程序。该程序将统计指定字符串中每个单词出现的次数。们同时定义单词的长度和出现次数的乘积作为权重,程序最终需要输出权重最高的单词以及其出现的次数**。(不限语言,函数自行声明)......

2022-08-15 17:46:08 4028

转载 malloc是如何分配内存的

malloc是如何分配内存的 malloc和free的实现与原理 什么场景下 malloc() 会通过 brk() 分配内存?又是什么场景下通过 mmap() 分配内存? malloc(1) 会分配多大的虚拟内存? free 释放内存,会归还给操作系统吗? 为什么不全使用`mmap()` 或`brk()` free() 函数只传入一个内存地址,为什么能知道要释放多大的内存?......

2022-08-14 00:09:55 890

原创 实现STL(SGI)的string(深拷贝)

浅拷贝:也称位拷贝,编译器只是将对象中的值拷贝过来。如果对象中管理资源,最后就会导致多个对象共享同一份资源,当一个对象销毁时就会将该资源释放掉,而此时其余对象不知道该资源已经被释放,以为还有效,所以 当继续对资源进项操作时,就会发生发生了错误。要解决浅拷贝问题,通过深拷贝来解决。浅拷贝 深拷贝而在进行析构释放堆上new出来的资源时候就会出现重复释放的错误,如下图所示,当s1 destory,_s申请的空间被释放,但是!!...

2022-08-12 21:19:04 478

原创 详解HTTP协议版本(HTTP/1.0、1.1、2.0、3.0区别)

HTTP1.0 无连接 队头阻塞 缓存HTTP/1.1 特点 优缺点 长连接 管道传输 HTTP/1.0 比较 HTTP/1.1HTTP协议层次结构图HTTP/2.0 头部压缩 二进制格式 多路复用 服务端推送 TCP导致队头阻塞HTTP/3.0 无队头阻塞 连接建立 连接迁移......

2022-08-11 21:13:33 14313 3

原创 环形链表问题(判环、求入口点)

如何判断链表中是否带环?【问题】那为什么快指针每次走两步,三步可以吗?四步....如果有环,如何找到这个环的入口 结论: 推导过程 源代码:

2022-08-08 11:52:12 187

原创 理解 Linux 文件系统

Linux文件权限 文件类型与访问权限 相关指令 粘滞位 文件描述符 软硬链接

2022-08-03 09:49:51 362

原创 LIS 最长上升子序列问题(动态规划、贪心+二分)

LIS最长上升子序列1. 子串2. 子序列 LIC定义例题:广场舞队伍 动态规划 贪心+二分法详解

2022-07-06 14:25:48 503 1

原创 错排问题 (抽奖,发邮件)

错排问题概念及其递推关系的推导,错排问题例题:牛客链接例题:发送邮件,年会抽奖

2022-07-01 11:02:08 202 3

原创 【二叉树】(非递归)四种遍历

树的概念与结构二叉树概念与结构性质存储结构二叉树的遍历二叉树的定义前序遍历中序遍历后序遍历层序遍历二叉搜索树AVL树红黑树

2022-06-22 17:45:52 1885 3

原创 计算机网络常见协议与概念

OSI模型分为7层,自下而上为,物理层,数据链路层,网络层,传输层,会话层,表示层,应用层(物数网传会表应)交换机在数据链路层,路由器在网络层  在网络分层中,自下而上,第N层为N+1层提供服务,N-1层将从N层接的信息增加一个头部不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链路层叫做帧(frame)协议为网际协议,在网络层工作协议为Internet控制报文协议,它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消

2022-06-01 10:53:07 357

原创 操作系统刷题笔记(选择题与基础概念)

选择题LRU多线程(概念)估算cpu时间存储器读取时间机械硬盘相关知识:数据总线进程父子进程进程调度状态LRU一进程刚获得三个主存块的使用权,若该进程访问页面的次序是{1321215123},采用LRU算法时,缺页数是______次。A 3B 4C 5D 6缺页中断:要访问的也不存在主存中, 需要系统将其调入主存在进行访问。LRU(最近最久未使用和最少使用):当要调入一页而必须淘汰旧页时,按LRU算法置换缺页数:即缺页中断次数,等于 进程的物理块数 + 页面置换数 多线程(概

2022-05-27 18:22:37 1143 2

原创 什么是内存泄漏?

内存泄漏是什么? 与几种常见情况。存在危害 内存泄漏 和 内存溢出 解决方案 检测内存泄漏常用的检测工具 如何避免内存泄漏?

2022-05-01 20:13:04 5929 8

原创 Linux 内存管理 详解(虚拟内存、物理内存,进程地址空间)

Linux -操作系统内存管理存储系统存储器的层次结构Linux的内存管理物理内存物理内存管理虚拟内存虚拟地址空间(写时拷贝)和物理地址映射关系 「在 4GB 物理内存的机器上,申请 8G 内存会怎么样?」...

2022-04-17 14:28:24 13438 21

原创 C++ stl迭代器 (迭代器失效问题)

C++剖析stl 迭代器是什么?:迭代器 和 指针;迭代器失效;详解`vector`迭代器失效

2022-04-08 20:53:25 4148 13

原创 在 C/C++中 static 关键字详解

static 关键字详解 C/C++ 中的 static 1. 静态局部变量 2. 静态全局变量 全局变量 与extren 3. static 修饰函数 C++的 static 成员 静态成员变量 静态成员函数 总结:const修饰的静态变量

2022-03-21 14:49:45 18674 14

原创 从C快速入门C++ (命名空间、引用、函数重载)

从C快速入门C++ 一.命名空间、引用、函数重载C++关键字命名空间

2022-03-16 17:29:54 1176 18

原创 剖析C动态内存管理 (malloc,calloc,realloc,柔性数组)

C语言 动态内存管理为什么存在动态内存管理动态内存管理函数◇ malloc 与 free◇ calloc◇ reallocrealloc 调整内存中的各种情况总结柔性数组为什么存在动态内存管理int a = 10; // 在栈上开辟4字节int arr[10] = {0}; // 在栈上开辟10字节连续空间空间开辟大小固定,不可改变数组初始化时必须明确数组大小,在编译时分配所需的内存而有时我们需要在程序运行中才知道所需的空间大小,受数组编译时开辟空间限制无法在使用这种方式,所以使用动态

2022-02-09 13:19:10 1252

原创 初学必看 C陷阱与缺陷(第二版)读书笔记

C陷阱与缺陷(第二版)读书笔记第一章1. **=** (赋值操作符) 与 **==** (比较操作符)2. 字符 与 字符串第二章C陷阱与缺陷电子版pdf链接:https://pan.baidu.com/s/1KjfcgR7ABN54OyjfEwTAwg提取码:abcd第一章1. = (赋值操作符) 与 == (比较操作符)场景: 比较时误用为赋值if(a = b) { return 1}; 本意是检查 a, b 的值是否相等,结果是将 b 的值赋给 a 实际判断a

2022-02-06 15:53:53 1064

原创 算法之算法的时间复杂度

算法之算法的时间复杂度什么是算法算法时间复杂度程序基本操作执行次数渐进时间复杂度时间复杂度是指执行算法所需要的计算工作量,想要了解算法的时间复杂度不妨先看看到底什么是算法。什么是算法<1> 算法(Algorithm):是对特定问题求解方法(步骤)的一种描述,是指令的有限序列,一条指令表示一个或多个操作。<2>算法的五个特性  有穷性(Finiteness)  算法的有穷性是指算法必须能在执行有限个步骤之后结束,且每一步时间都是有穷的。 确切性(Definitenes

2021-11-17 19:26:30 907 7

原创 【C语言】易错题 and 易混淆知识

由多个源文件组成的C程序,经过编辑、预处理、编译、链接等阶段会生成最终的可执行程序。下面哪个阶段可以发现被调用的函数未定义  由多个源文件组成的C程序,经过编辑、预处理、编译、链接等阶段会生成最终的可执行程序。下面哪个阶段可以发现被调用的函数未定义?( )  A.预处理 B.编译 C.链接 D.执行                                                                                                 

2021-11-15 17:37:53 695 2

原创 C 字符串面试题 替换空格“%20“(leetcode力扣,牛客)

剑指offer字符串面试题 替换空格题目:时间复杂度O(n)的算法源代码题目:牛客网:编程题 空格替换 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。  在网络编程中,如果URL参数中含有特殊字符,如空格、#等,则可能导致服务器端无法获得正确的参数值。我们需要将这些特殊符号转换成服务器可以识别的字符。转换的规则是在°%后面跟上ASCII码的两位十六进制的表示。比如空格的ASCII码

2021-11-11 22:35:36 588 2

原创 结构体内存对齐 (位段、联合union)

结构体内存对齐什么是结构体?结构体定义 及 声明举个例子:结构体的声明typedef struct结构体变量的定义及初始化结构体内存对齐为什么存在内存对齐?对齐规则如何计算内存大小 什么是结构体?   相信对于已经学习或了解过C语言知识的伙伴们,对于结构体这个名词肯定不陌生,但是结构体相关知识你都了解吗?继续往下学习或者复习巩固一下吧。结构体定义 及 声明结构体定义:结构体是由一批数据组合而成的结构型数据。组成结构型数据的每个数据称为结构型数据的“成员” ,其描述了一块内存区间的大小及解释意义

2021-10-25 21:39:03 906 9

转载 已知: 每个飞机只有一个油箱, 飞机之间可以相互加油(注意是相互,没有加油机) 一箱油可供一架飞机绕地球飞半圈, 问题:为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?(所有飞机从

已知: 每个飞机只有一个油箱, 飞机之间可以相互加油(注意是相互,没有加油机) 一箱油可供一架飞机绕地球飞半圈, 问题:为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?(所有飞机从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没有飞机场)3架飞机5架次,飞法:ABC 3架同时起飞,1/8处,C给AB加满油,C返航,1/4处,B给A加满油,B返航,A到达1/2处,C从机场往另一方向起飞,3/4处,C同已经空油箱的A平分剩余油量,同时B从机场起飞,AC到7/8处同B平分剩余

2021-08-16 15:39:22 231

原创 关于整型提升(C语言隐式类型转换)

C语言整型提升(隐式类型转换)文章目录C语言整型提升(隐式类型转换)定义整型提升的意义整型提升例题:  定义  C的整型算术运算总是至少以缺省整型类型的精度来进行的。为了获得这个精度,表达式中的字符和短整型操作数在使用之前被转换为普通整型,这种转换称为整型提升 (integral promotion)。这一规则是由C语言的发明人丹尼斯·里奇与肯·汤普逊创设的 (原话如下)“A character, a short integer, or an integer bit-field, all e

2021-08-06 17:58:11 319 1

原创 智力题:13 个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球?

面试题:13 个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球?(详解)文章目录面试题:13 个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球?(详解)解题思路详细图解第一次称重第二、三次称重  首先我们阅读题目,得到信息1)有一个球与其他12个重量不同,但是不知道比其他轻还是重;2)只能称三次。常规方法显然很难解决,所以我们用一种巧妙的办法解决。    解题思路将13个球分别编号为1~13。将(1,2,3,4)与(5,6,7,8)分别放

2021-08-02 17:34:51 2349 1

原创 C语言新手关机整蛊程序

新手就能上手的关机恶搞程序(C语言)

2021-07-23 20:56:27 453

原创 C语言 递归算法练习(阶乘,斐波那契,字符串逆序)

//接受一个无符号整数并打印每一位。#include<stdio.h>#include<windows.h>#pragma warning(disable:4996) //vs(vs2013)使用scanf时需要加 _s 否则会报错,用这种是解决方法之一int Print(int num){ if (num > 9){ Print(num / 10); } printf(" %d ", num % 10);}int ma

2021-06-02 16:11:47 732 6

空空如也

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

TA关注的人

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