自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【linux】进程间通讯之管道

管道分为有名管道 和 无名管道管道是在内存上开辟一个空间 比文件的打开更快有名管道可以在任意进程之间使用无名管道只能在父子之间是半双工的,比如对讲机,要么说话要么收听不能同时进行单工就是电台和收音机类型 一个只能发送一个只能接受 是固定的全双工,就是手机 可以说话可以收听写端如果关闭,读端read()接触阻塞返回值为0读端如果关闭,写端产生异常,SIGPIPE会关闭程序...

2020-08-17 10:09:21 113

原创 2020-08-17

int Add(int x,int y){int sum = 0;sum = x + y;return sum;}int main (){int a = 10;int b = 12;int ret = 0;ret = Add(a,b);return 0;}esp ,栈指针寄存器(extended stack pointer),其内存放着一个指针,该指针永远指向系统栈最上面一个栈帧的栈顶。ebp:基址指针寄存器(extended base pointer),其内存放着一个指针,该

2020-08-17 00:06:22 143

原创 【C++】编译链接运行原理

1.预编译(生成.i文件)1.将所有的“#define”删除,并且展开所有宏;2.处理掉所有条件预编译指令,如:“#if”、“#ifdef”、“#elif”、“#else”、“#endif”;3.处理“#include”指令,这是一个递归过程;4.删除所有的注释“//”和“/* */”;5.添加行号和文件名标识;6.保留所有的#pragma编译器指令,待编译器使用;2.编译(生成.s文件)把预处理完的文件进行一系列的词法分析,语法分析,语义分析及优化代码、生成相对应的汇编代码文件。程序构建的

2020-08-17 00:00:30 149

原创 【LINUX】select 与poll和epoll区别

这里写自定义目录标题IO复用,前面学习了网络编程的使用,通过TCP/IP或者UDP的使用,了解了一些网络通讯的方式,那就是通过套接字socket通过IP地址和端口号port使两个通讯双方进行或者实时或者延时i的通讯,有了很大的方便,但是当我们socket用多个client访问的时候,这个时候就不比单个客户端访问的了,这个时候我们可以通过IO复用,来让我们的效率达到更高。(整理)O多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。IO多路复用适用如下场合:1)当客户处理多

2020-08-16 23:57:51 186

原创 【数据结构】八大排序之简单插入排序

如果给定一组乱序的数字 比如:18,2,69,8,5,12,44,2,6如何把他们有序排列呢?我们可以通过给定一个中间变量tmp 把这些数字分成两种 一个是已经有序数列 一个是待排序数列当只有一个数字的时候他就不算是无序的因此我们可以给一个值让他从第二个数字开始遍历 跟第一个数字做比较但是如果出现这种情况呢? 1比任何都小如何把它放进最里面呢?这时候我们可以做一个遍历j,让J–遍历 1之前的数字,如果小 tmp保存的1比当前arr[j]小,那么–并且arr[j+1]=arr[j];

2020-08-13 19:32:56 183

原创 【数据结构】之KMP算法 和朴素算法

手动写NEXT的时候是这样#include<stdio.h>#include<stdlib.h>#include<string.h>int KMP(char *s,char *t){int slen=strlen(s);int tlen=strlen(t);int i=0;// 主串的下标int j=0;//模式串的下标int next[7]={-1,0,0,0,1,2,3};while(i<slen&&j<tlen).

2020-08-13 16:27:07 201

原创 【linux】HTTP和HTTPS区别和应用场景 整理版本

http协议 应用层协议 默认使用80端口 而https是443http和https协议和端口有何不同?端口号不同https是加密的因此对个人来说是更安全的http协议是在应用层的http超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法。《图解HTTP》这本书中曾提过HTTPS是身披SSL外壳的HTTP。HTT

2020-08-12 23:13:45 1627

原创 【LINUX】socket的三次握手

在进socket的了解过程之中我们先了解一下:1.网络:把多台主机连接起来就构成了网络2.互联网:网络和网络连接起来就是互联网3.IP:在网络中唯一标识一个主机IP地址由两部分组成网络号和主机号4.MAC地址物理地址 标识一台主机(类似于在学校学号可以标识你 学生姓名也可以标识你)5.端口号short为了在主机上标识一个进程或者应用程序6.网络分层分成OSI模型和TCP/IP模型应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 应用层

2020-08-12 00:32:07 637

原创 【LINUX】静态库与共享库制作,及区别

静态库和共享库静态库特定:库里的方法会被拷贝到可执行程序中,目标主机即便没有该库,那么可执行程序仍然能执行。ar crv libxx.a add.o max.o共享库特点可执行程序只做标记,并不包含共享库中的办法,在运行程序时才动态链接,目标主机没有共享库,程序无法执行。库的使用,C库,默认就会被链接,其他库,需要用户指定。静态库gcc -o main main.c -L路径 -l库名库的存放位置 /usr/lib 或者根的/lib共享库的做法Gcc -shared -f

2020-08-11 00:48:03 147

原创 【数据结构之循环队列】

首先当然是头文件啦#include<stdio.h>typedef int ElemType;#define MAX_SIZE 9typedef struct Queue{ElemType arr[MAX_SIZE];int front;int rear;}Queue,*pqueue;void init(pqueue ptr);int full(pqueue ptr);int enqueue(pqueue ptr,ElemType val);int empty(pque

2020-08-08 19:21:27 345

原创 【数据结构】链栈的操作和使用

首先给出声明函数也就是头文件#include<stdio.h>#include<stdlib.h>//时间复杂度决定了算法的效率//时间复杂度越低效率越高//o(1)说明 不需要循环遍历,o(n)需要循环遍历typedef int ElemType;typedef struct Node{ElemType data;struct Node*next;}Node,*pStack;void initNode(pStack pst);Node*buyNode(El

2020-08-08 11:42:14 374

原创 【Mysql】基本操作命令和LINUX下的操作

好久没有记录代码了,好像公司面试都要看代码,把我保存的代码都贴上来,学弟学妹们一定记得要记录自己代码鸭~~~~#include<stdio.h>#include<stdlib.h>#include"Dsqlist.h"Node*buyNode(EleaType val){Node Dpnewnode=(Node)malloc(sizeof(Node));Dpnewnode->data=val;Dpnewnode->prev=NULL;Dpnewnode-

2020-08-04 22:54:18 81

原创 【结构体】

struct Student{char name[20];int age;};代表是的创建一个student的结构体,这个结构体里面存放两种数据类型,一个是char 类型,一个是age类型如何使用?int main(){struct Student stu1={“liubei”,20}; //一个标准的输入}通过**.**号访问它stu1.age=38; //把stu...

2019-11-24 11:18:28 117

原创 普通变量和静态变量以及函数和静态函数

全局变量=={普通全局变量,静态全局变量}什么属于全局变量?在函数的外部定义的变量就是全局变量。在函数的内部定义的变量叫做局部变量。一般来说尽量不要使用全局变量,它最大的特点就是不安全,任何一个函数都可以修改它的值。 生命周期 存储位置 默认值 ...

2019-10-31 22:33:53 140

原创 【递归】实现斐波那契数列

斐波那契数列在递归中有一个很明显的缺点就是,在递归中,由于所有内存都是被提前占的,只有等到每项计算出来后才会释放该项所占的内存,所有对于斐波那契数列来说,光从数列看很适合递归,但是从计算机的运行速度上看,他的计算速度远远没有for循环时的运行速度快。所以,“斐波那契数列是最像递归的不递归”用FOR循环的算法#include<stdio.h>int Fabio(int n){...

2019-10-31 21:09:10 916

原创 【递归】经典题目实现阶乘

#include<stdio.h>int Fac(int n){int tmp;if(n1||n0){return 1;}tmp=Fac(n-1)*n;}int main(){printf("%d\n",Fac(5));return 0;}

2019-10-31 20:35:28 181

原创 【递归】经典题目 求末位人年龄

题目的要求是 有n个人 第一个人的年龄是10,他的下一个人的年龄是他的年龄的+2岁求当n=20,30岁的年龄。掌握了递归的要点就很容易 递归的方法是着重写出n-1和n的关系#include<stdio.h>int Age(int n){int tmp;if(n==1){return 10;}tmp=Age(n-1)+2;return tmp;}i...

2019-10-31 20:32:12 245

原创 【递归】C语言经典题目“汉诺塔”

对于汉诺塔题目,最好用的是运用递归方法实现汉诺塔的移动。给出代码:#include<stdio.h>int count=0; //定义一个全局变量count计数 ,方便后面打印移动的次数void Move(char a,char b) //移动函数 记录移动的路径{printf("%c->%c\n",a,b);count ++; }v...

2019-10-31 20:07:00 350

原创 动态内存的创建与使用

1.动态内存是什么?2.如何使用动态内存?3.动态内存会出现的错误有哪些?首先要知道什么是静态内存,静态内存指的是函数内部定义的定长的数组,它是向栈中申请需要内存。栈是一个放置比较小内存的地方,栈的大小大约是1M左右 (1024*1024)当我们需要在函数中使用n个数未知数,这n个未知数又要作为一个数组的组数的时候 ,就要使用动态内存。动态内存的使用它是向系统中的堆申请连续的你需要的内存...

2019-10-29 17:12:35 247

原创 //反序存放

#include<stdio.h>#include<string.h>//反序存放void Fx(char *des){int i;int tmp;int j;int k=strlen(des);for(i=0,j=k-1;i<k/2;i++,j–){tmp=des[i];des[i]=des[j];des[j]=tmp;}}int m...

2019-10-17 19:37:10 290

原创 输入一个字符串,输出这个字符串中第N个字符后的所有字符

#include<stdio.h>#include<string.h>void ZF(char * ps,int n){if(n<=strlen(ps)){ ps=ps+n; printf("%s\n",ps);}else{ printf("非法");}}int main(){char crr[]=“acede”;ZF(crr,2)...

2019-10-09 22:39:27 2784

原创 将指针src的字符串复制到des

#include<stdio.h>void Mystrcpy(char *des,char *src){int i;for(i=0;src[i]!=’\0’;i++){des[i]=src[i];}des[i]=’\0’;}int main(){char crr[11] = “abc”;char drr[10] = “abcdefgij”;Mystrcpy(...

2019-10-06 18:57:45 391

原创 判断一个数是否是素数

#include<stdio.h>bool IsPrime(int num){int i;for(i=2;i<num;i++){if(num%i==0){return false;}}return true;}int main(){int num;for(num=56;num<100;num++){if(IsPrime(num)){...

2019-10-06 16:23:13 115

原创 判断一个年份是否是闰年

#include<stdio.h>bool IsLeapyear(int year){if(year%40&&year%100!=0||year%4000){return true;}else{return false;}}int main(){int i;for(i=0;i<3000;i++){if(IsLeapyear(i))...

2019-10-06 16:12:36 182

原创 从1加到某一个数的和和比较3个数的大小

#include<stdio.h>int main(){int i;int t;int sum;scanf("%d",&n)//读取加到n的值for(i=1;i<n;i++){sum +=i;//sum=sum+i;}printf("%d",sum);return 0;}//后面老师说scanf不太稳定 不推荐使用scanf,oK ,whate...

2019-10-05 14:00:41 178

空空如也

空空如也

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

TA关注的人

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