自定义博客皮肤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)
  • 收藏
  • 关注

原创 C++单例模式

饿汉模式:1#include <iostream>using namespace std;class Singleton{private: Singleton(void) { } static Singleton object;public: static Singleton& get_object(void) { return object;...

2019-09-19 16:31:09 186

原创 五、C/C++基础知识

1、extern关键字的作用基本解释:extern可以置于变量或函数前,以标识变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找定义。2、C中全局变量 局部变量能同名吗? 如果同名怎么访问全局变量?能,局部会屏蔽全局。要用全局变量,需要使用 “::” ;3、什么是中断,中断服务程序过长会有什么后果?中断服务程序过长,可能会出现两种情况:1.运行时间过长,影响同优...

2019-09-18 20:47:55 178

原创 四、C/C++基础知识

1、.Socket网络通信中阻塞与不阻塞的区别?阻塞的情况下,如果读socket,而socket没有数据,则程序就在socket等数据,一直不返回(除非socket错误或者超时) 非阻塞的情况下,如果读socket,而socket没有数据,则返回来,表示读了0个字节回来。 当socket有数据时,阻塞与非阻塞是一样的2、const和static关键字怎么加,加上去有什么作用? 全局函数加上st...

2019-09-16 19:59:38 238

原创 简单的链表创建,添加节点(链表数据从小到大排序),显示,销毁函数

#include<stdio.h> 2 #include<stdlib.h> 3 #include<stdbool.h> 4 typedef struct Node 5 { 6 int data; 7 struct Node* next; 8 }Node; 9 10 Node* creat_node(int ...

2019-09-11 21:02:50 455

原创 三、C/C++基础知识总结

1、用一段代码来判断机器是16位还是32位的?可以使用sizeof计算int的字节长度来判断是32位还是16位。32位机器下:sizeof(int) = 4;16位机器下:sizeof(int) = 2二:利用最大值机器位数不同则表示的数字的最大值是不同的。32位机器下int的最大值为2147483647,16位机器下int的最大值是32767我们可以利用最大值是否溢出情况来判...

2019-09-11 20:15:32 279

原创 二、C/C++基础知识总结

1、int id[sizeof(unsigned long)];这个对吗?为什么?答案:正确 这个 sizeof是编译时运算符,编译时就确定了 ,可以看成和机器有关的常量。2、简述变量的声明和定义有声明区别声明变量时不会分配内存,定义变量时才会分配内存。3、简述sizeof和strlen的区别对于一个字符串变量,strlen()的结果是字符串本身的长度,在本例中BaiJiangWei长...

2019-09-10 20:18:18 132

原创 一、C++知识点总结

1、什么是多态 概念:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。简单的说:就是用基类的引用指向子类的对象。比如有一个父类superClass,它有2个子类subClass1,subClass2。superClass有一个方法 func(),两个子类都重写了这个方法。那么我们可以定义一个superClass的引用obj,让它指向一个子类的对象,比如superC...

2019-09-10 18:44:57 142

原创 使用Qt进行TCP通信步骤详解

#include "widget.h"#include "ui_widget.h"Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget){ ui->setupUi(this); tcpSocket = new QTcpSocket; connect(tcpSo...

2019-09-06 21:03:02 2111

原创 C与C++的区别

C和C++的区别一、C++介绍本贾尼.斯特劳斯特卢普,于1979年4月份贝尔实验室的本贾尼博士分析UNIX系统分布内核流量分析时,希望有一种有效的更加模块化的工具。1979年10月完成了预处理器Cpre,为C增加了类机制,也就是面向对象,1983年完成了C++的第一个版本,C with classes 也就是C++。C与C++的不同点:1、C++完全兼容C的所有内容2、支持面向对象的编...

2019-09-03 20:46:42 527

原创 C++中覆盖、隐藏、继承的区别

覆盖的条件:1、必须是虚函数2、必须时父子类之间3、函数签名必须完全相同(参数列表完全一致,const属性也会影响覆盖的结果)4、返回值必须是同类或父子类(子类的返回值要能向父类隐式转换)。5、访问属性不会影响覆盖6、常函数属性也会影响覆盖隐藏的条件:1、子类隐藏父类中的标识符(不一定时函数)2、父类中有同名标识符,如不构成覆盖且编译通过,则构成隐藏重载的条件:1、同一作用域...

2019-09-02 20:21:25 282

原创 C语言进程间有名管道和无名管道通信

管道时UNIX系统最古老的进程间通信方式(基本不再使用),历史上的管道通常时半双工(只允许单向数据流动),现在的系统大都可以全双工,数据可以双向流动。1、有名管道(建立实体文件)命令:mkfifo函数:int mkfifo(const char* pathname,mode_t mode);功能:创建管道文件Pathname:文件路径Mode:权限返回值:文件描述符返回值:成功返回...

2019-08-20 21:06:34 1138

原创 C++类对象的创建与释放过程详解

创建:分配内存(对象的空间)->父类构造->成员的构造-》自己的构造父类构造:按照继承表从左至右一次构造。成员构造:按照声明顺序从上到下依次构造释放:自己析构-》析构成员-》析构父类-》释放内存(对象)析构成员:按继承表从下到上依次析构析构父类:按继承表从右到左依次析构#include<iostream>using namespace std;class...

2019-08-16 17:21:42 963

原创 C语言静态库和共享库详解

库:库就是目标文件的集合,我们把不需要升级更新维护的代码打包合并在一起方便使用,也可以对源代码进行保密。静态库:静态库在使用时是把被调用的代码复制到调用模块中,然后再执行程序时,静态库就不需要了。静态库的执行速度快,但占用空间大,当库中的内容发生变化时,需要重新编译生成程序,因此不能轻易修改库中的内容。共享库:只是在调用模块中嵌入调用代码在库的相对位置的地址,然后再执行程序时,共享库会...

2019-08-14 08:59:37 658

原创 UDP协议网络通信详解

基于UDP协议的C/S模型ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,const struct sockaddr *dest_addr, socklen_t addrlen);功能:UDP协议专用的数据发送函数sockfd:套接字描述符buf:待发送的缓冲区首地址len:待发送的数据字节数flags...

2019-08-12 23:10:38 824

原创 C语言实现TCP网络通信

TCP:传输控制协议,面向连接的服务(打电话),安全、可靠(三次握手、响应+重传、四次挥手)速度相对较慢,一般应用在对安全性性、完整性有严格要求的场景:ftp、SMTP、HTTP步骤一:套接字#include <sys/socket.h>int socket(int domain, int type, int protocol);功能:创建socket描述符,可以把socket...

2019-08-10 22:29:54 3194 2

原创 C语言消息队列实现进程间通信的实现方法

消息队列就是由内核负责管理的一个管道,可以按顺序发送消息包(消息类型+消息内容),可以全双工工作,可以不按消息的顺序接收消息。int msgget(key_t key, int msgflg);功能:创建/获取消息队列key:IPC键值,由ftok函数自动生成msgflg:0 获取消息队列IPC_CREAT 创建消息队列IPC_EXCL 如果存在则创建失败返回值:消息队列标识in...

2019-08-08 23:22:34 3800

原创 C语言fork函数创建新进程的实现方式

Pid_t fork(void)l功能:创建一个新进程。返回值:一次调用两次返回,失败返回-1(当进程数超出系统的限制,创建就会失败)。1、两此返回分别是进程ID和0,父进程会拿到子进程的ID,子进程返回0,借此可以分别出父子进程,编写不同的处理分支2、通过fork创建的子进程就是副进程的副本(拷贝)子进程会获取父进程的数据段,BSS段、堆、栈、IO流(共享文件指针和文件描述符)、缓冲区...

2019-08-07 22:26:39 1495

原创 C语言实现图的广度遍历

广度优先:类似树的层序遍历,与树一样也需要使用队列配合,将一个结点的出度全部遍历一遍,然后换下个点,遍历过的点不便利,直到所有点遍历完成,广度优先遍历就是遍历结点的出度,和深度优先遍历一样,序列不唯一。...

2019-08-06 22:41:23 737

原创 C语言实现插入排序

插入排序:当一列已经有序,再有加入的数据时,适合使用插入排序。插入排序它的原理是每插入一个数都要将它和之前的已经完成排序的序列进行重新排序,是要找到新插入的数对应原序列中的位置。那么也就是说,每次插入一个数都要对原来排序好的那部分序列进行重新的排序,一般都是从头开始插入,循环N次后序列就是有序数组在这里插入代码片// 插入排序void insert_sort(int* arr,size_t...

2019-08-05 22:52:08 369

原创 C语言实现选择排序

选择排序:是冒泡排序的一种变种,但是它没有冒泡对数据有序性的敏感,但它在排序过程中比较冒泡要少了很多数据交换,因此数据比较混乱的情况下要比冒泡要比快。// 选择排序void select_sort(int* arr,size_t len){ for(int i=len-1; i>0; i--) { int max = i; for(int j=0; j<i; j++...

2019-08-04 20:42:25 183

原创 C语言实现冒泡排序

冒泡排序:是一种稳定排序,在排序过程中可以监测到数据是否已经有序(对数据的有序性敏感),可以立即停止,如果待排序的数据基本有序,则冒泡的效率是非常高的。冒泡排序原理:对数组进行排序,进行n轮排序,n为数组长度,每一轮将前面的数与数组最后一个数据比较,升序就将较大数交换至数组,并将数组长度减小1进行下一轮排序,最后数组就是有序] `` // 冒泡排序void bubble_sort(int*...

2019-08-04 20:26:58 273

原创 C语言堆排序实现方法

堆排序:首先把数据构当作完全二叉树,然后保证根点最大,然后把根结点与最后一个元素交换,然后再调整二叉树(逐渐减少数组),让根依然保持最大,重复上次操作。所以必须先使用递归产生一个根节点从上而下必须大于子节点或者小于子节点的树,这样才能保证根节点是最大或者最小的一个叶子节点,将将这个节点与根节点交换,将这个根节点放进数组中,将数组长度减1,再次调用,调用n次,n为数组长度``void crea...

2019-08-04 00:01:24 284

原创 Linux通过chdir/fchdir/getcwd修改进程的工作目录

#include <stdio.h>#include <unistd.h>#include <sys/stat.h>#include <sys/types.h>#include <fcntl.h>int main(){ open("hehe1",O_CREAT,0644); char buf[1024] = {}; ...

2019-07-28 21:29:34 877

原创 图的深度遍历

图最基础遍历方式有2两种1、深度遍历2、广度遍历注意:图的遍历结果无论是深度优先还是广度优先都不是唯一的。深度优先:类似树的前序遍历。广度优先:类似树的层序遍历,与树一样也需要使用队列配合。#include <stdio.h>#include <stdlib.h>#include <stdbool.h>#include "queue_list....

2019-07-22 22:13:14 844

原创 C语言中当先输入整数时再输入字符数据时,输入整数时的回车符会残留下来,影响字符的输入的解决方案

C语言中输入整数后如果按了回车符后进入下面的程序时之前的回车符会留着缓冲区下,之后如果执行到输入字符的程序,回车符会把这个字符直接顶掉,从而出现明明写了需要输入字符缺直接被跳过的情况。解决方法:1、调整输入的顺序,先输入字符,再输入整数。2、scanf("%*[^\n"),scanf("%c") 必须在确定有垃圾数据的情况才能使用,否则必须补一个回车符。3、stdin->_IO_re...

2019-07-14 22:52:14 1941

空空如也

空空如也

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

TA关注的人

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