自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【C++】内联函数

内联函数用法1.C++中被inline函数修饰的函数,称为内联函数;2.inline应该与函数的定义体放在一起;//inline与函数声明放在一起,不能成为内联函数inline void fun(int x,int y);void fun (int x,int y){……}//inline与函数定义体放在一起,可以成为内联函数void fun (int x,int y);inline fun (int x,int y){……}3.声明与定义应该在同一个编译模块下;声明与定义若不在同一

2020-10-28 18:26:59 291

原创 【网络】MTU理解、MTU对上层协议的影响

MTUMTU:MTU链路层最大传输单元,不同的网络类型有不同的MTU,链路层的MTU(Data数据长度加TCP协议报头长度加IP协议报头长度),以太网帧限制数据长度范围是46到1500字节,ARP数据报不足46字节则在其后面进行补位,若大于1500字节(大于该拨号链路的MTU)则需要在网络层进行分片,将数据报分为若干片,每片都小于MTU。对上层协议的影响对网络层IP协议的影响将较大的IP数据报进行分包时,需要对每个小包进行标记,每个小包中携带部分数据,IP报头的其他数据不变,只是用IP协议头中的3位

2020-08-28 10:31:52 1087

原创 【网络】TCP如何实现可靠传输

目录TCP协议特性可靠传输面向连接确认应答(ACK)机制与序号及确认序号超时重传机制校验和字段避免丢包的机制TCP协议特性TCP协议(传输控制协议)三个特性:面向连接、可靠传输、面向字节流面向连接:三次握手建立连接,四次挥手断开连接,双方状态管理;可靠传输:在网络没有问题的情况下,保证每个数据都要到达对端;面向字节流:区别于UDP面向数据报,TCP把应用程序看成是一连串的无结构的字节流,socket会维护发送缓冲区和接收缓冲区来存放这些数据,再根据协议要求打包分装发送。可靠传输TCP为了实现可

2020-08-21 09:21:20 1257

原创 【网络】HTTP协议浅析------HTTP格式

目录HTTP协议概述HTTP协议使用URLURL包含要素URL编码HTTP协议格式HTTP协议概述HTTP(HyperText Transfer Protocol,超文本传输协议 )其作为一种约定规范,完成从客户端到服务器端等一系列运作流程。请求访问文本或图像等资源的一端称为客户端,而提供资源响应的一端称为服务器端。http协议是一种应用层协议应用层协议: 定义了运行在不同端系统上的应用程序进程如何相互传递报文。HTTP协议使用HTTP协议定义了Web客户端如何从Web服务器请求Web页面,以及

2020-08-07 17:47:33 243

原创 【网络】TCP通信建立过程(图文解析)------------三次握手

目录TCP协议简介TCP建立通信流程TCP协议简介TCP:Transmission Control Protocol 传输控制协议TCP的三个特性:面向连接、可靠传输、面向字节流TCP建立通信流程与DUP的通信流程不同,TCP与其特性对应,通信流程较为复杂,如下图所示1.创建套接字:调用socket函数创建文件描述符;接口:int socket( int domain, int type, int protocol );domain:地址域类型type:套接字类型protocol:协议类

2020-08-03 15:37:14 1201

原创 【网络】UDP通信流程图解,UDP通信程序相关接口介绍,及简单UDP网络程序编写

套接字编程网络通信程序的编程:套接字编程就是通过套接字接口实现两端通信程序的编写。在网络通信中都是端与端的通信客户端:主动发起请求的一端;服务端:被动接受请求的一端;在TCP/IP五层协议中,应用层协议有程序员来订立,应用层处理后,将数据交给操作系统进行传输层的封装,由于传输层不同协议处理的流程不同,通信程序的编写也不同。传输层协议:TCP协议、UDP协议等;UDP协议简介UDP(User Dayagram Protocol)用户数据报协议------传输层协议特点:无连接:需要知道对端

2020-07-29 10:26:01 3507

原创 【C语言】如何计算结构体大小-----内存对齐(图文讲解)

计算结构体大小时,并不是单纯的将成员大小相加,而是要考虑结构体内存对齐规则。结构体内存对齐规则:1.第一个结构体成员,在结构体变量首地址偏移量为0的地址处(第一个成员不需要对其,但具有对其数);2。除第一个成员外,其他成员变量存储时都要对应到对齐数的整数倍的地址处;对齐数=编译器默认对齐数与该成员大小中的较小值(vs默认值为8,Linux默认值为4)通过代码探究其存储方式:例1:3.结构体总大小为最大对其数的整数倍;4.若结构体中嵌套了结构体,嵌套结构体对齐到自己最大的整数倍处。例2:

2020-07-23 12:19:40 428

原创 【C++】位图解决海量数据,判断某数是否存在问题

场景现有40亿个不重复无符号整数,未排序。在其中检测一个给定无符号整数是否存在。40亿数据总字节大小大概为15G,无法一次加载入内存中尝试方法:遍历 --------时间复杂度O(N)先排序 O(NlogN),再二分查找:O(logN)哈希切割-------查找效率不高使用位图解决-----查找效率最高,最省空间位图解决的思路数据是否保存在40亿条数据当中,有存在/不存在两种状态,可以使用二进制1/0在比特位中进行标记。40亿条数据为无符号整形,其最大取值范围为0到0xfffff

2020-07-23 08:25:54 625

原创 【C语言】strlen/strcpy/strcat/strcmp 用法及简单模拟实现

目录strlenstrlensize_t strlen ( const char * str) ;计算返回str字符串长度,以 ‘\0’ 为结尾(长度不包含 ‘\0’ )返回值类型为无符号整形size_t模拟实现strlen:

2020-07-22 22:22:01 612

原创 【C语言】整形提升

整形提升原理及验证发生场景:隐式类型转换:C语言中,算术运算时至少会以缺省类型的精度进行。为了达到这个精度,表达式中的字符和短整形操作数在计算之前会被转换为普通整形,这种转换就是整形提升。为什要进行整形提升?表达式的整形运算在CPU中的相应运算器件内执行,而CPU的整形运算器(ALU)的操作字节长度一般为int的字节长度,这也是CPU通用寄存器的长度。通用CPU难以实现两个小于int长度的n个字节直接相加运算,所以,表达式中各种长度可能小于int长度的整形值,都要先转换为int或者unsigned

2020-07-20 11:39:25 563

原创 【C语言】for循环常见问题

目录for循环的语法for循环的常见问题死循环循环判断为逗号表达式for循环的语法语法:for(表达式1; 表达式2; 表达式3){ 循环语句…}表达式1:初始化部分(初始化也可以放在循环体外);表达式2:条件判断部分,用于判断循环何时终止;表达式3:调整部分(条件变量的更新)。for循环相比while循环,for循环的三个必要条件(初始化、判定、更新)由于风格原因,三个部分距离较近,便于查找修改。for循环的常见问题死循环1.判断条件设置错误2.数组越界导致条件变量数据被覆盖修改如

2020-07-20 11:27:49 5554

原创 【C语言】【C++】关于const的总结

C语言及C++中关于const的总结目录C语言中const的用法const修饰变量修饰全局变量/修饰局部变量C++中const的用法const修饰变量const修饰成员函数C语言中const修饰变量可以使用两种形式:const int a = 10;int const a = 10;被const修饰的变量,具有常量的特性,不可以直接赋值。如下图,a不可直接被修改(const无论放在int前还是int后都修饰的是变量a,不是类型int)报错:const修饰的变

2020-05-13 23:18:30 293

原创 【C语言】 猜数游戏

猜数游戏游戏规则:这里会随机产生一个1-100的整数,你有五次机会来猜这个数是几,期间系统将会提示你猜大了还是猜小了。#include <stdio.h>#define RAND_MAX 0x7fffint random_num = 0;int input_num = 0;int nums = 0;int start()//开始界面{ int i; print...

2019-10-11 20:55:13 362

原创 【C语言】 计算1/1-1/2+1/3-1/4+1/5...+1/99-1/100的值

使用switch语句判断i的基偶性,分母为基数相加,分母为偶数相减注意定义sum的数据类型为double#include <stdio.h>#include<stdlib.h>int main(){ int i; double sum = 0.0; printf("sum="); for (i = 1; i < 101; i++){ switc...

2019-09-28 00:26:01 1226

原创 开启编程新世界

开启编程新世界我是谁?准备大步往前走之前我可能先要直面自己的处境了。。。信息管理与信息系统专业一个C的遗忘者看着脚下Java的起跑线听着C++在前方呐喊加油背着比水壶沉、比脑子慢的笔记本涉猎不多,了解的却只是浅尝辄止可是既然跨入了这里,我就要对这个世界大声说一句:我来了!新“行程”第一阶段系统了解计算机相关知识,锻炼自我解决问题、获取知识的能力;第二阶段大量浏览学习,...

2019-09-21 00:44:12 257

空空如也

空空如也

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

TA关注的人

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