- 博客(16)
- 收藏
- 关注
原创 自己实现memcpy memove
#include<iostream>using namespace std;template<class T>void mcpy(T* a, T* b,int num){ if (a == NULL && b == NULL)return; T* c = a; T* d = b; while (num) { *c =*d; c++...
2019-10-04 21:23:00
178
原创 C++ 智能指针的简单介绍
资料来源 :c++ primer 第五版使用智能指针主要作用是:解决在使用指针因为动态内存出现的问题1.内存泄露2.多次释放指针3…释放有多个指针指向的内存,由通过指针访问。1.auto_ptr通过把前面的指针置为nullptr,来解决多个指针指向同一块内存。//auto 的拷贝构造函数。auto_ptr(auto_ptr& _Right) noexcept : _...
2019-08-13 17:48:30
182
原创 32位下的内存地址分布
32位下的内存地址分布图如下:1g为内核空间,3g为用户空间内核空间:内核空间表示运行在处理器最高级别的超级用户模式(supervisor mode)下的代码或数据,内核空间占用从0xC0000000到0xFFFFFFFF的1GB线性地址空间,内核线性地址空间由所有进程共享,但只有运行在内核态的进程才能访问,用户进程可以通过系统调用切换到内核态访问内核空间,进程运行在内核态时所产生的地址都属于...
2019-08-12 11:30:11
3952
原创 TCP 四次挥手过程 简单整理
在连接中,哪一段先发送FIN请求,哪端才会有FIN_WAIT1,FIN_WAIT2,TIME_WAIT状态。被关闭一端有COLSE_WAIT,LAST_ACK状态。此时客户端先断开:(1) TCP客户端发送一个FIN+seq,用来关闭客户到服务器的数据传送。自身进入FIN_WAIT1状态,等待服务器的确认信号。此时服务器端进入COLSE_WAIT状态。(2) 服务器收到这个FIN,它发回一...
2019-08-09 16:15:28
195
原创 简单理解 同步和互斥 同步和异步-----阻塞和非阻塞
一、同步和互斥----实现对临界资源的控制互斥是同步的一个子集。互斥:通过互斥锁来实现某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。s=1;p(s) //s-1printf();v(s) //s+1通过p v 操作来是实现对 写...
2019-08-03 16:06:00
839
原创 const限定符的个人理解
1.定义 赋值.const int buf = 512; // buf 的值 不能再改变所以 buf 在定义时 必须被 初始化;其初始值也可以是 函数的调用 const int i=get(); 也可以用相同类型的对象 来初始化。2.常量引用const 的引用----常量引用 引用和 对象都为常量const int c1 =1024const int &b1=c1;//co...
2019-07-22 10:51:32
117
原创 简单描述 虚函数的定义和调用
#include "stdio.h"class Base { public: int Bar(char x) { return (int)(x); } virtual int Bar(int x) { return (2 * x); } }; class Derived : public Ba...
2019-07-20 16:22:21
465
原创 linux基础(1)
1.目录文件/boot 内核系统文件/bin 二进制的可执行程序/dev 设备文件/etc 系统的配置文件/lib 库文件/home 普通用户的家目录/root 超级用户的家目录/mnt 临时挂载点/proc 虚拟的目录/tmp 临时文件/usr 运行时 不常改变的文件/var 运行时 常改变的文件2.文件类型...
2018-12-09 10:10:31
131
原创 字符串函数实现
#include<stdio.h>#include<string.h>#include <stdlib.h>//int majorityElement(int* nums, int numsSize)//众数//{//int m = numsSize / 2;//int i = 0;//int add = 0;//for (i = numsSiz...
2018-11-29 21:59:57
330
原创 小程序 求两字符串中是否有相同字符
#include<stdio.h>#includebool fun(const char *a, const char *b,int len){int m = 0;for (int i = 0;i <len ;i++){m = m^a[i] ^ b[i];}if (m)return false;elsereturn true;}int main()...
2018-11-23 17:36:58
3122
原创 初学C语言(6):三个小程序
//杨辉三角#includeusing namespace std;#define p 10void yanghui(int(*brr)[10]){int j;int i = 0;for (i = 0;i < p;i++){for (j = 0;j < p;j++){brr[i][j] = 1;if (j > i)brr[i][j] = 0;}}...
2018-10-30 18:42:16
133
原创 初学C语言(4)
1.在 代码中 所有的计算 计算机都是将整数转换为2进制后 才进行计算的2.计算数字二进制中1的个数:可以计算负数算法:while(n!=0){n=n&(n-1);m++;}3.斐波那契 :1 1 2 3 5 8 13 21F1=1 f2=1 f3=1F3=f1+f2;f1=f2;F2=f3;第一项第二项已知 从第三项开始算4.Break :结束所有循环5....
2018-10-24 18:12:00
157
原创 初学C语言(5):逆序输出词组 ,判断回文数
#include#include<assert.h>using namespace std;void reverse(char *pbegin, char *pend ) // 将一句话 词组逆序输出{ char tmp = 0;while (pbegin < pend){tmp= *pbegin;*pbegin = *pend;*pend = tmp;...
2018-10-24 18:07:15
322
原创 初学C语言(3)
1、求一个数字的二进制数中1的个数 2 0000 0010 12、给定一个数字,求这个数字是几位数?顺序打印每一位数字 逆序打印每一位数字12345 5 1 2 3 4 5 5 4 3 2 13、求斐波那契数列的第40项的和为多少?1 1 2 3 5 8 134、输出 100-200 之间的不能被 3 整...
2018-10-17 22:06:58
133
原创 初级C语言(2)
1.变量——在运行过程中可以改变的 一般在栈stack 中存放左值=右值作用域:花括号内 ——————局部变量生命周期:当前函数结束后 变量的内存 会自动回收定义变量不能数字开头不能使用未初始化的变量1.1栈(stack)又名堆栈, 大小:1m-2m 通常由计算机自动分配,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈...
2018-10-12 14:29:18
328
原创 初学C语言
上的第一节课1.函数的构成?返回值 函数名字 函数的参数:形式参数’一个函数由两部分组成:A. 函数的首部,即函数的第一行,包括函数名 . 函数类型 . 函数属性 . 函数参数(形式参数)名 . 参数 类型。 一个函数名后面必须跟一对圆括号, 括号内写函数的参数名及其类型。 函数可以没有参数, 如 main() 。B. 函数体,即函数首部下面的花括号内的部分。如果一个函数...
2018-10-07 21:08:39
634
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人