自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 计算机网络-tcp/udp

tcp:序列号:在建立连接时由计算机生成的随机数作为其初始值,通过 SYN 包传给接收端主机,每发送一次数据,就「累加」一次该「数据字节数」的大小。用来解决网络包乱序问题。确认应答号:指下一次「期望」收到的数据的序列号,发送端收到这个确认应答以后可以认为在这个序号以前的数据都已经被正常接收。用来解决不丢包的问题。控制位:ACK:该位为 1 时,「确认应答」的字段变为有效,TCP 规定除了最初建立连接时的 SYN 包之外该位必须设置为 1 。RST:该位为 1 时,表示 TCP 连接中出现异常必须

2021-04-08 19:19:44 276

原创 计算机网络-http

**1.http过程(从输入网址到显示主页的过程)1在客户端浏览器中输入网址URL。发送到DNS(域名服务器)获得域名对应的WEB服务器的IP地址。客户端浏览器与WEB服务器建立TCP(传输控制协议)连接。客户端浏览器向对应IP地址的WEB服务器发送相应的HTTP或HTTPS请求。WEB服务器响应请求,返回指定的URL数据或错误信息;如果设定重定向,则重定向到新的URL地址。客户端浏览器下载数据,解析HTML源文件,解析的过程中实现对页面的排版,解析完成后,在浏览器中显示

2021-04-08 16:12:29 181

原创 malloc和new的区别

1.malloc和new都是在堆上开辟内存,但malloc只开辟内存不进行初始化,new不仅开辟内存也初始化内存,如:new int(10),new int[10]().2.malloc是函数,开辟内存需要传递字节数,如malloc(100),返回void*,是开辟内存的起始地址,需要强转成指定类型的地址;new是运算符,开辟内存要指定类型,返回指定类型地址,不需要强转.int *p1=(int *)malloc(sizeof(int));int *p2=new int(2);int *p3=new

2021-03-23 21:20:34 471

原创 C++---指针和引用的区别

1.从汇编层面上,指针和引用的底层操作是一样的,(把内存的地址放到寄存器中,再把寄存器里存的地址给指针)定义一个引用变量就相当于定义一个指针,然后把引用内存的地址写到这个指针里。当通过引用改变所指变量的值时,先访问指针里的地址,在地址指向内存改值。2.指针可以不初始化,赋值可以指向任意同类型的内存(int *p;p=a;p=b;),但是引用必须初始化,一旦引用一块内存,不能引用其他。3.进行sizeof操作时,sizeof指针是4个字节,sizeof引用是它引用内存的字节大小。...

2021-03-23 21:20:10 110

原创 算法题

1.阶乘后的零给定一个整数 n,返回 n! 结果尾数中零的数量。示例 1:输入: 3输出: 0解释: 3! = 6, 尾数中没有零。示例 2:输入: 5输出: 1解释: 5! = 120, 尾数中有 1 个零.说明: 你算法的时间复杂度应为 O(log n) 。思路:5和偶数的结合会产生尾数0 ==》2和5的结合=》2的个数比5多=》考虑阶乘数的组成有多少个5=》分解因子有多少个5=》循环算法class Solution public int Numberzeroes(int n)

2020-11-06 18:33:28 130

原创 css格式主页

对上一次的代码改进首页<html> <head> <title > 这里是我自己的宇宙</title> <style type="text/css"> body { background-image:url('/C:/Users/90964/Desktop/16.jpg'); background-color:rgba(0,255,0,0.5); } .p1 a:link { font-size:40px;

2020-10-24 17:00:24 679

原创 使用html制作个人主页

刚刚学习了关于HTML的基本操作就做一个个人主页练练手,但由于是第一次写,比较粗糙,有很多不足,希望大家批评和指正,共同进步,共同学习。首先分享一个学习html各种标签方法的学习网站w3chool进入正题...

2020-10-10 22:21:09 27951 6

原创 JAVA-jdk和idea安装

资源放在文章最后,有需要自取jdk点击第三个文件(以管理员身份运行)更改一下安装路径,放在内存多的盘,别放c盘文件夹也更改一下,放在一个目录里安装完成在dos里测试一下是否安装完成,用java和javac命令配置环境变量打开此电脑属性,点击高级系统设置点击环境变量新建环境变量打开系统变量path,添加两个变量添加下面的最后两个变量用java-version命令测试一下成功idea以管理员身份运行第一个文件选择64bit 之后一直next就安装好

2020-09-15 17:47:13 570

原创 Linux —进程管理命令

ps默认显示与当前终端有关的进程信息-e 显示系统中所有的进程信息-f 显示更多的进程属性信息(全格式)-L 显示进程中的线程 ID[pei@localhost Desktop]$ ps PID TTY TIME CMD 3191 pts/0 00:00:00 bash 3586 pts/0 00:00:00 ps[pei@localhost Desktop]$ ps -e PID TTY TIME CMD 1 ?

2020-09-09 20:51:24 179

原创 linux—库文件

什么是库文件库是一组预先编译好的方法的集合。 本质上来说,库文件就是可执行代码的二进制形式,可以被操作系统载入内存中执行。Linux系统存储的库的位置一般在:/lib 和 /usr/lib。在 64 位的系统上有些库也可能被存储在/usr/lib64 下。库的头文件一般会被存储在/usr/include 下或其子目录下。Linux操作系统支持的函数库分为静态库和动态库,动态库又称共享库。静态库静态库名称一般为:libxxx.a 例librse.a利用静态函数库编译生成的文件一般较大,因为

2020-09-09 20:22:50 179

原创 makefile

makfile是什么Makefile 可以简单的认为是一个工程文件的编译规则,描述了整个工程的编译和链接等规则。其中包含了那些文件需要编译,那些文件不需要编译,那些文件需要先编译,那些文件需要后编译,那些文件需要重建等等。编译整个工程需要涉及到的,在 Makefile 中都可以进行描述。换句话说,Makefile 可以使得我们的项目工程的编译变得自动化,不需要每次都手动输入一堆源文件和参数。为什么要使用makefile以 Linux 下的C语言开发为例来具体说明一下,多文件编译生成一个文件,编译的命令

2020-09-06 16:31:38 766

原创 linux-进程的虚拟地址空间

进程是执行中的程序(程序是存储在磁盘上的二进制可执行文件,指令+数据)虚拟地址空间程序运行后进程拥有自己独立的虚拟空间大小: CPU位数决定 如果32位是4G 指针大小与虚拟地址空间位数相同(寻址空间== 虚拟地址空间)32 位平台 *p 32位==4byte 64位 *p 64位 == 8 byteLinux下布局1.内核空间read fork open等(系统api),在内核空间(1G)2 栈局部变量存放在栈中栈内存区的地址是连续的,鲧统控制速度较快3.堆堆内存区的地址是

2020-09-01 17:14:07 312

原创 Linux-readelf,objdump

objdump查看目标文件的信息objdump查看目标文件或者可执行目标文件的构成的gcc工具常见选项:objdump -x obj:以某种分类信息的形式把目标文件的数据组成输出;<可查到该文件的的所有动态库>objdump -t obj:输出目标文件的符号表()objdump -h obj:输出目标文件的所有段概括()objdump -j ./text/.data -S obj:输出指定段的信息(反汇编源代码)objdump -S obj:输出目标文件的符号表() 当g

2020-08-27 18:02:06 237

原创 linux-编译连接原理

在linux系统下编写代码后,通过gcc进行编译和链接生成可执行文件 细分就是四大部分:预编译,编译,汇编,链接预编译gcc下,首先会将C文件生成 .i 文件,C++文件生成 .ii 文 件。gcc -E 源文件 -o 生成文件预编译做的事情:a) 删除所有的“#define”,并且展开所有的宏定义;b) 处理所有的条件预编译指令,“#if”、“#ifdef”、“#endif”等;c) 处理“#include”预编译指令,将被包含的文件插入到该预编译指令的位置;d) 删除所有的注释;e

2020-08-27 16:23:28 172

原创 gcc和g++的使用和区别

程序的编译和链接阶段是靠编译器来完成。gcc和g++就是常见的两个编译器。这两个编译器的编译阶段是相同的gcc基本格式gcc 【选项】 准备编译的文件 【选项】 【目标文件】gcc的常见选项无选项:在准备编译的文件目录下生成可执行文件 a.out ,gcc test.c-x:告诉gcc源文件的语言,若不使用,则默认根据文件后缀判断语言:gcc -x c test.c ,“c”处还可为:c++ ,assembler ,c-header ,objective-c ,等-o:用于指定结果名称

2020-08-14 16:17:59 167

原创 vi/vim的使用及命令

vi/vim分为三种模式: 命令行模式,插入模式,末行模式一.命令切换命令模式切换到插入模式:. a //进入到当前光标后开始编辑. A //进入到当前光标所在行的行末开始编辑. i //进入当前光标位置开始编辑. I //进入当前光标所在行的行头开始编辑. o //进入当前光标下一行开始编辑. O //进入当前光标上一行开始编辑命令模式切换到末行模式 : //对文本的设置或保存工作 / //对文本进行全文向下搜索字符串 string ? //对文本进行全文向上搜索字符串 stri

2020-08-13 16:37:46 168

原创 linux基本命令

1.pwd 显示当前路径[pei@localhost Desktop]$ pwd/home/ pei/Desktop2.cd 切换路径cd 进入用户主目录;[ pei@loca lhost Desktop]$ cd[pei@localhost ~]$cd ~ 进入用户主目录;cd - 返回进入此目录之前所在的目录;[pei@localhost Desktop]$ cd /bin[pei@localhost bin]$ cd/home/pei/Desktop[pei@loca

2020-08-12 15:34:01 121

原创 顺序表常考题

1.设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性//不要用二分查找,易错bool InsertX(PDSeqList va, int x){ //找到插入的位置,找到第一个大于x的值,没有就为结尾 int i; for (i = 0; i < GetLength(va); i++) { if (va->elem[i] > x) break; } return Insert(va, x, i);}2.比较

2020-05-13 17:59:23 403

原创 静态链表的原理及实现

静态链表,利用顺序表模拟链表操作,包含两条链表,一条为有效数据链表,头节点为0下标;一条为空闲链表,头节点为1下标,两条链表都是循环链表//初始化void InitList(PSLinkList s){ assert(s != NULL); if (s == NULL) return; //初始化有效链 s[0].next = 0;//有效链的头指向自己(空链表) //初始化空闲链 int i = 1; for (; i < MAXSIZE; i++) { s[i].

2020-05-13 16:40:06 241

原创 memset不能将数组元素初始化为1的原因

memset是一个字节一个字节的设置,把一个int的每个字节都设置为1,也就是0x01010101,(十六进制1位是二进制4位,两位是二进制8位,是1字节)十进制就是16843009memset是以字节为单位,进行初始化当初始化char类型数组 初始化多少都可以char data[10]; memset(data,0,sizeof(data)); // right memset(...

2020-04-06 18:39:05 560

原创 变量总结static

2020-04-03 16:02:38 80

原创 strcpy,strlen,strcat,strcmp的c语言实现

//比较字符串大小//"abc"<"x" ;"abc"=="abc","abc">"abb"// <0 , 0 ,>0int Mystrcmp(const char* str1, const char* str2){ assert(str1 != NULL && str2 != NULL);...

2020-04-01 18:05:25 88

原创 c语言实现atoi函数

//实现int Myatoi(const char* str);//将字符串转成数字"123"->123//" -12344 "-->-12344//"123ab456"->123//"13403943501498005402509"->整数能表示的最大值//实现void Myitoa(char* str, int n);//将数字转成字符串,1...

2020-04-01 18:00:28 365

原创 求字符串中最长单词

//求最长单词char *Maxword(const char* str){ char* curstr = (char*)malloc(sizeof(str)+1);//动态内存 加1 char* maxstr = (char*)malloc(sizeof(str) + 1); int i = 0; int max = 0; while (*str != '\0') { if ...

2020-04-01 17:57:31 610

原创 c语言实现itoa

#include<stdio.h>//字符串反转"abc"->"cba"void Reverse(char* str){ char tmp; char* p; for (p = str; *p != '\0'; p++); for (p--; str<p; p--, str++) { tmp = *str; *str = *p; *p = tmp...

2020-04-01 17:52:48 202

原创 利用筛选法求素数

利用筛选法求n以内素数void SiftPrime(int n){ //int arr[n]; int* arr = (int*)malloc(n * sizeof(int));//动态内存 assert(arr != NULL); int i; for (i = 0; i < n; i++) { arr[i] = 1; } arr[0] = arr[1] = 0...

2020-04-01 17:50:24 148

原创 杨辉三角的实现

//杨辉三角void Ytrangle(){#define N 10 int a[N][N] = { 1 ,0}; for (int i = 0; i < N; i++) { for (int j = 0; j < i; j++) { if (j = 0 || i == j) { a[i][j] = 1; } else { ...

2020-04-01 17:48:07 67

原创 魔方阵的实现

//魔方阵//如3×3的魔方阵://8 1 6//3 5 7//4 9 2//魔方阵的排列规律如下://(1)将1放在第一行中间一列;//(2)每一个数存放的行比前一个数的行数减1,列数加1////(3)如果上一个数的行数为1,则下一个数的行数为n(指最下一行);//例如1在第一行,则2应放在最下一行,列数同样加1;////(4)当上一个数的列数为n时,...

2020-04-01 17:46:02 213

原创 穷举

排列组合题可用穷举方法//两个乒乓球队进行比赛, 各出3人。甲队为A, B, C 3人, //乙队为X, Y, Z3人。已抽签决定比赛名单。有人向队员打听比赛的名单, A说他不和X比,//C说他不和X, Z比, 请编程序找出3对赛手的名单。//穷举void match(){ for(char a='X';a<='Z';a++) for(char b='X';b<='...

2020-03-10 20:19:47 173

原创 数据类型

对于1个字节的类型无符号取值范围 0-255 共256个 有符号为-128-127 负:-1— -128 正 0-127float 4个字节 double 8个字节 默认使用doublesizeof(12.3) =8;for(char i=0;i<=127;i++){printf("%d\n",i);}输出结果为死循环 永远小于等于127char i=198;//...

2020-03-09 22:18:34 83

原创 统计整数的位数/逆序输出/顺序 丢弃算法

List item核心就是丢弃算法

2020-03-09 22:02:24 100

空空如也

空空如也

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

TA关注的人

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