自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 TCP网络通信(多进程,多线程,线程池)

TCP网络通信预备知识socket: 在TCP/IP协议中表示:IP地址+TCP端口号或UDP端口号唯一标识网络通讯中的一个进程,IP地址+端口号就称为socket。网络字节序: 在学习C语言的时候,我们大家都应该知道大小端 的问题,在网络数据流中同样也有大小端之分,网络数据流的地址规定: 先发出的数据是低地址,后发出的地址是高地址,即网络数据流应采用大端字节序,低地址高字节。#inclu...

2019-09-23 16:18:43 451

原创 密码加密

凯撒密码相传是古罗马凯撒大帝用来保护重要军情的加密系统。它是一种置换密码,通过将字母顺序推后起到加密作用。如字母顺序推后 3 位,字母 A 将被推作字母 D,字母 B 将被推作字母 E。本实例类似于凯撒加密。加密算法:大(小)写字母加密后还为大(小)写字母。大(小)写字母向后推 n 位,n 由用户输入,如果超出大(小)写字母的 ASCII 范围,则返回至第一个大(小)写字母继续循环。解密算法...

2019-09-23 16:10:02 291

原创 new和malloc的区别

new和malloc的区别0.       属性new/delete是C++关键字,需要编译器支持。malloc/free是库函数,需要头文件支持。1.       参数使用new操作符申请内存分配时无须指定内存块的大小,编译器会根据类型信息自行计算。而malloc则需要...

2019-09-20 00:55:25 81

原创 数组与链表

数组与链表二者都属于一种数据结构从逻辑结构来看数组必须事先定义固定的长度(元素个数),不能适应数据动态地增减的情况。当数据增加时,可能超出原先定义的元素个数;当数据减少时,造成内存浪费;数组可以根据下标直接存取。链表动态地进行存储分配,可以适应数据动态地增减的情况,且可以方便地插入、删除数据项。(数组中插入、删除数据项时,需要移动其它数据项,非常繁琐)链表必须根据next指针找到下一个元...

2019-09-19 23:33:26 104

原创 select/poll/epoll

IO多路复用(select poll epoll)(select poll只有水平触发,epoll有边缘触法,这是他为什么效率高)select:服务端一直在轮询、监听如果有客户端链接上来就创建一个连接放到数组A中,继续轮询这个数组,如果在轮询的过程中有客户端发生IO事件就去处理;select只能监视1024个连接(一个进程只能创建1024个文件);而且存在线程安全问题;poll:在select...

2019-09-19 15:23:20 128

原创 <Interview>8.设计模式

1、单列模式实现:一个类只能实例化一个对象懒汉模式:1.让构造函数私有化2.使用静态函数作为接口来获取类对象的地址注意:多线程中当有两个线程要同时获取该对象的地址的时候就会出错,所以我们要对线程上锁, 锁定会让同时执行这段代码的线程排队执行饿汉模式:在程序启动或单例模式类被加载的时候,单例模式实例就已经被创建。2、 单列模式可以替代全局变量么?单列模式可以从一定程度...

2019-09-06 15:36:48 90

原创 <Interview>7.数据结构

1、 栈和队列的区别;(1)队列先进先出,栈先进后出。(2)对插入和删除操作的"限定"。 栈是限定只能在表的一端进行插入和删除操作的线性表。队列是限定只能在表的一端进行插入和在另一端进行删除操作的线性表。(3)遍历数据速度不同,队列遍历的速度快。栈与队列的相同点:1.都是线性结构。2.插入操作都是限定在表尾进行。3.都可以通过顺序结构和链式结构实现。、4.插入与删除的时间复杂度都是...

2019-09-06 15:35:22 91

原创 <Interview>6.多态

1、 什么是多态?为什么用多态?有什么好处?对多态的理解? 多态:是指同一接口,对于不同的对象,可以有不同的执行结果。简单的说,就是用基类的指针指向子类的对象。多态又分为静态多态和动态多态。静态多态是指在编译的时候就可以确定函数的调用地址,并产生代码,这种方法也叫做静态联编,通过函数重载来实现的。动态多态指函数调用的地址不能在编译的时候就决定,它需要在运行的时候才能确定,我们用虚函数...

2019-09-05 15:46:56 88

原创 <Interview>5.C/C++知识点

1、 memcpy和strcpy的区别l 复制的内容不同。strcpy只能复制字符串,而memcpy可以复制任意内容,例如字符数组、整型、结构体、类等。l 复制的方法不同。strcpy不需要指定长度,它遇到被复制字符串的结束符"\0"才结束,所以容易溢出。memcpy则是根据其第3个参数决定复制的长度。char strcpy(char dest, const char *...

2019-09-05 12:28:10 191

原创 <Interview> 4.操作系统

1、进程间通信的方式有哪些?各自的优缺点及应用选择?管道:只能单向传递,且只能在有亲缘关系的进程中使用有名管道:也是单向传递,但可以在非亲缘进程中使用信号量:可以用来控制多个进程对共享资源的访问消息队列:消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺 点;信号:信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经...

2019-09-04 12:07:33 110

原创 <Interview>SQL语言

1.SQlite3一.qlite3一些常用Sql语句操作创建表:            create  table 表名(元素名 类型,…);删除表:        &nbs...

2019-09-04 11:52:16 114

原创 <Interview>数据库

1、主键,外键1.主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄。身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。 2.外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键。3.比如学生表(学号,年纪,年龄),学号作为学生表的主键,在成绩表(学号,...

2019-09-03 15:12:03 132

原创 <Interview>计算机网络

1、七层网络模型和四层网络模型2.TCP和UDP的区别(一定要清楚);TCP面向连接的传输控制协议,传输可靠(保证数据的正确性和数据顺序)、用于传输大量数据(流模式)、速度慢,建立链接需要开销较多(时间,系统资源等);UDP面向非连接的数据包服务,传输不可靠,用于传输少量数据、速度快,具有较好的实时性,工作效率较TCP协议高;3.三次握手的过程要清楚第一次握手:建立连接时,客户端发送s...

2019-09-03 15:10:43 113

原创 关于大小端

一、什么是大端和小端所谓的大端模式,就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。所谓的小端模式,就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。简单来说:大端——高尾端,小端——低尾端举个例子,比如数字 0x12 34 56 78在内存中的表示形式为:1)大端模式:低地址 -----------------> 高地址0x12 | 0x34...

2019-09-03 10:25:10 352

原创 C++ STL中容器总结

一、容器的定义在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对像的指针,这种对象类型就叫做容器。很简单,容器就是保存其它对象的对象,当然这是一个朴素的理解,这种“对象”还包含了一系列处理“其它对象”的方法。二、容器的种类1、顺序容器:是一种各元素之间有顺序关系的线性表,是一种线性结构的可序群集。顺序性容器中的每个元素均有固定的位置,除非用删除或插入的操作改变这个位置。顺序容器的元...

2019-09-02 21:21:44 144

原创 TCP的三次握手四次挥手

所谓三次握手(Three-Way Handshake)即建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。在socket编程中,这一过程由客户端执行connect来触发。TCP三次握手(1)第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认...

2019-09-02 17:02:23 83

原创 内存分配、野指针、指针、数组相关

内存分配方式有哪些?C语言内存分配方式: 从静态数据区分配,该内存在程序编译的时候就已经分配好,直到程序运行结束。分为BSS、Data、Rodata段,BSS存放未初始化的全局变量,Rodata存放常量,data存放初始化的全局变量和静态变量。 从堆上分配,动态内存分配,程序运行时用new,malloc分配的空间,声明周期由用户决定,free/delete。向上增长。...

2019-08-20 23:29:07 107

原创 C++11 STL中的容器

C++11 STL中的容器一、顺序容器:vector:可变大小数组;deque:双端队列;list:双向链表;forward_list:单向链表;array:固定大小数组;string:与vector相似的容器,但专门用于保存字符。二、关联容器:按关键字有序保存元素:(底层实现为红黑树)map:关联数组;保存关键字-值对;set:关键字即值,即只保存关键字的容器;multi...

2019-08-20 23:27:19 143

原创 有关析构函数和构造函数的几点说明

有关析构函数和构造函数的几点说明:构造函数和析构函数都不能被继承(构造函数和析构函数是用来处理对象的创建和析构的,它们只知道对在它们的特殊层次的对象做什么。所以,在整个层次中的所有的构造函数和析构函数都必须被调用而不能被继承。)构造函数可以重载,析构函数不可以重载(构造函数可以有参数,析构函数没有参数。)构造函数不可以是虚函数,析构函数可以是虚函数(1. 构造函数为什么不能为虚函数?a...

2019-08-14 11:52:12 190

原创 冒泡/选择/快速/插入排序

/冒泡冒泡排序算法运行起来非常慢,但在概念上它是排序算法中最简单的,因此冒泡排序算法在刚开始研究排序技术时是一个非常好的算法。冒泡排序原理即:从数组下标为0的位置开始,比较下标位置为0和1的数据,如果0号位置的大,则交换位置,如果1号位置大,则什么也不做,然后右移一个位置,比较1号和2号的数据,和刚才的一样,如果1号的大,则交换位置,以此类推直至最后一个位置结束,到此数组中最大的元素...

2019-07-25 19:45:52 82

原创 单链表逆序

单链表逆序功能:逆转链表,并返回逆转后的头结点,(给出单链表的结点结构)typedef struct _node{int data;struct _node * next;}Node;函数原型:Node ReverseList(Node head);#include <stdio.h>#include <stdlib.h>typedef struct _...

2019-07-13 15:18:19 106

原创 memcpy,字符串逆序, I am from shanghai,倒着输出整数的函数,要求用递归方法

**1、原型:void *memcpy(void dest, const void src, size_t n);功能:从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中;memcpy没有考虑重叠的情况;#include <stdio.h> #include <string.h> void *my_memcpy(...

2019-07-13 15:16:48 885 1

原创 通过编程,1.实现strlen、strcmp、strcpy、strcnpy、strcat、strstr、strchr等字符串处理函数 2.atoi

*(1)函数:strlen原型:int strlen(char s);功能:计算字符串s的长度、返回s的长度,不包括结束符NULL。#include <stdio.h>int my_strlen1(char * demo) //计数 { int len = 0; while(*demo++) {len++;} return len;}int...

2019-07-13 14:39:01 257

原创 链表实现通讯录

初学者 第一次写通讯录,写到头皮发麻。灵活运用指针函数,返回值为指针注意使用二级指针操作头指针head注意del函数的判断条件切记不骄不躁!#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;#include &lt;string.h&gt;#include &lt;malloc.h&gt;#define LEN sizeof(st...

2019-02-19 17:16:15 331

原创 双向链表 循环

/*****************************************************copyright (C), 2014-2015, Lighting Studio. Co., Ltd. File name:双向链表 循环 Author:Jerey_Jobs Version:0.1 Date: Description:Funcion List...

2019-02-19 17:15:30 103

原创 单链表

#include &amp;lt;stdio.h&amp;gt;#include &amp;lt;stdlib.h&amp;gt;#include &amp;lt;time.h&amp;gt;struct node{int num;struct node * next;};typedef struct node Node;typedef struct node* Link;void creat_Link(Link *

2019-02-16 23:21:52 150

空空如也

空空如也

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

TA关注的人

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