- 博客(13)
- 收藏
- 关注
原创 C++11智能指针
智能指针 智能指针其实就是一个模板类,将原始指针封装到类中,可由析构函数自动释放资源。 C++11提供了两种智能指针 不带引用计数的智能指针:auto_ptr scoped_ptr unique_ptr 带引用计数的智能指针:shared_ptr weak_ptr 智能指针浅拷贝问题:多个智能指针多次释放同一个资源 不带引用计数的智能指针: auto_ptr在处理浅拷贝的问题上,直接把前一个指针置为nullptr,只让最后一个指针持有资源 scoped_ptr与unique_ptr则直接删除了拷贝
2020-09-08 19:19:14
166
原创 Linux网络编程:多进程的服务端
多进程的服务端 多进程服务端工作流程 socket():创建服务端的socket bind():将通信地址和端口号绑定到socket上 listen():把socket设置为监听模式(TCP3次握手) accept():接受客户端的连接 fork():创建子进程 recv()/send():与客户端通信 return 0/exit(0):结束子进程 close():关闭socket 代码示例 服务端代码 //code05.cpp code_tree 多进程的服务端
2020-08-08 15:55:29
219
原创 C++basic--sizeof与strlen
sizeof与普通变量 char str[]="cumt"; char* p=str; int n=10; sizeof(str);//5 sizeof(p);//4 sizeof(n);//4 void func(char c[10]) { sizeof(c);//4 } void* a=malloc(10); sizeof(a);//4 sizeof(str)=strlen(str)+1 指针大小为4 整型大小为4 数组是"传址"的,指针大小为4 32位系统下无论何种指针大小都为4 sizeo
2020-08-06 20:25:22
154
原创 C++basic--bit位运算
位操作 C语言中,可以单独操控变量中的位. 位运算符 二进制反码或按位取反: ~ ~(00000010) //表达式 (11111101) //结果值 按位与: & 与运算同1为1,其余为0 (00000010)&(00000001) //表达式 (00000000) //结果值 按位或: | 或运算同0为0,其余为1 (00000010)|(00000001) //表达式 (00000011) //结果值 按位异或: ^ 异或运算不同为1,相同为0 (0000001
2020-08-06 20:22:05
452
原创 Linux网络编程:简单的客户端服务器模型
简单的C/S模型 简单的服务端工作流程 socket():创建服务端的socket bind():将通信地址和端口号绑定到socket上 listen():把socket设置为监听模式(TCP3次握手) accept():接受客户端的连接 recv()/send():与客户端通信 close():关闭socket 客户端工作流程 socket():创建客户端的socket connect():向服务端发起连接请求(TCP3次握手) send()/recv():与服务端通信 close():关闭sock
2020-08-06 20:16:11
322
原创 C++basic--static
static static关键字可以修饰不同的类型,如普通变量,普通函数,成员变量,成员函数.修饰不同的类型具有不同的含义. static与普通变量 当变量声明为static时,修改了变量的存储区域和生命周期,使变量存储在静态区,空间只分配一次. //countadd.cpp #include<iostream> using namespace std; void countadd(){ static int count = 0;//int count = 0; cout<
2020-07-16 10:50:13
137
原创 C++basic--const
const const用于限定一个变量为只读。 const定义常量 const double Pi= 3.14; 相对于#define,const更加灵活并且可以节省空间.必须初始化. const与指针 区分常量指针与指针常量(const在*前为常量指针),常量指针对象不能变,指针常量指针不能变. int a= 10; int *p=&a; const int *p=&a;//non-const pointer,const data,常量指针 int* const p=&a;//
2020-07-16 10:47:46
142
原创 计算机基础之计算机网络学习笔记
计算机网络体系结构 计算机网络概述 计算机网络的组成 物理组成 从物理组成上看,计算机网络包括硬件,软件,协议三大部分 工作方式组成 从工作方式上看,计算机网络可以分为边缘部分和核心部分. 边缘部分:由所有连接在互联网上,供用户直接使用的主机组成,用来进行通信和资源共享. 核心组成:由大量的网络和连接这些网络的路由器组成,它为边缘部分提供连通性和交换服务. 功能组成 从功能组成上看,计算机网络由通信子网和资源子网两部分构成 通信子网:由各种传输介质,通信设备和相应的网络协议组成,为网络提.
2020-07-13 09:56:11
5293
原创 C++basic--assert
assert assert断言,是宏. C语言中<assert.h>(C++)头文件由assert()宏组成.接受一个整型表达式作为参数,其作用是如果条件返回错误,则终止程序执行,并会显示失败的测试,包含测试的文件名和行号. assert的用法 //test.cpp #include<iostream> //#define NDEBUG #include<cassert> using namespace std; int main() { int a=10;
2020-07-12 23:12:34
172
原创 计算机基础之操作系统学习笔记
绪论 操作系统的基本概念 计算机的硬件,软件以及软件的各部分之间是一种层次结构的关系.硬件在最底层,其上层是操作系统,实用程序和应用程序在操作系统之上,这些程序均已操作系统为支撑,并向用户提供完成工作所需的各种服务. 引入操作系统的目的: 提供一个计算机用户和计算机硬件系统之间的接口,使计算机系统更易于使用 有效地控制和管理计算机系统地各种硬件和软件资源,使之得以更有效地利用 合理组织计算机系统地工作流程,以改善系统性能 操作系统的特征: 并发性(并行性):并行性是指两个或多个事件在同一
2020-07-12 21:24:06
395
原创 计算机基础之组成原理学习笔记
计算机系统概述 基本组成: 运算器+控制器=CPU CPU+主存储器=主机 I/O设备又称为外部设备 存储器 1B=8bit.在32位系统中,1字=4字节 运算器 控制器 通常一条指令分为取指阶段和执行阶段 输入设备 输出设备 现代计算机组织结构逐步转化为以存储器为中心 数据的表示和运算 数制和编译 二进制.八进制.十进制.十六进制 BCD码:8421码.余3码.2421码 校验码:奇偶校验码.循环冗余校验码(最广泛).海明码 定点数的表示和运算 原码.补码.反码 浮点数的表示和运算 IEEE 754标
2020-07-11 11:56:25
427
原创 C++basic--enum
enum enum可创建符号常量. enum与枚举 enum定义的新类型称为枚举.其语法类似于struct enum color {red,orange,yellow,green,blue}; color为枚举 red,orange,yellow等称为符号常量,对应整数值0~4. 枚举只定义了赋值运算符,无法进行算术运算. 枚举量是整型,可转换为int型,但int型不能自动转换为枚举类型 可以强制类型转换将int转为枚举类型(枚举取值范围内) //test01.cpp #include<iost
2020-06-14 22:08:43
136
原创 C++basic--inline
inline 函数调用都有一定的开销(建立调用,传递参数,跳转到函数代码并返回). 使用宏使代码内联,可以避免这样的开销.另一种方法则是内联函数. 内联函数的编译代码与其他程序代码"内联"起来. 当调用内联函数时,程序使用内联代码代替函数调用. inline与常规函数 内联函数的运行速度比常规函数稍快.(代价是占用更多内存) //square.cpp #include<iostream> using namespace std; inline double square(double a){re
2020-06-09 21:36:48
163
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人