- 博客(7)
- 收藏
- 关注
原创 四次挥手问题
四次挥手的过程:四次挥手有可能是客户端发起的,也可能是服务器端发起的。(我们需要了解的是每个节点处于的状态,并且每个节点发送的内容)重点:1.为什么是四次挥手,不能是三次?首先需要声明的是可以三次挥手,三次挥手的情况就是把CLOSE_WAIT状态下发送的ACK和LAST_ACK状态下发送的FIN包装在一起,一起发送给主动段开方。然后就是为什么不能是三次:主动断开方和被动断开方都有两个缓存...
2019-10-27 23:16:08 1668
原创 三次握手问题
TCP三次握手:面向连接的 可靠的 字节流服务握手过程:客户端发送SYN指令(此时客户端处于SYN_SENT状态),服务器接收到请求指令(此时服务器处于SYN_RCVD状态),回复一个SYN,ACK指令,客户端此时就i处于已连接的状态,并且客户端会回复一个ACK的确认指令,服务器收到指令之后,服务器端也会处于已连接的状态。和三次握手相关的过程:监听过程:int listen(int s...
2019-10-27 12:54:26 131
原创 n!结果二进制的表示中第一个 1 在第几位
//1.写成二进制的形式之后就会发现右移几位结果就是多少,而右移一位和除以2效果是一样的int answer(int n){int count = 1;while(n % 2 == 0){count ++;n >>= 1;}return count;}...
2019-10-22 23:36:50 667
原创 n!的结果有几个0
//1.比较好理解的:2.5是构成该条件的因素,而2的个数比5多,所以只需要找有几个5就可以int funs(int n){int count = 0;for(int i=1;i<=n;i++){int j = i;while(j % 5 == 0){count ++;j /= 5;}}return count;}//2.根据乘法的思想,555=125; 12...
2019-10-22 22:32:58 104
原创 为什么一般把模板的实现放在.h文件中
sum.htemplateT sum(T a,T b){return a+b;}如果把函数的实现写在另外一个.cpp文件中,没有实例化,就不会生成一个函数,就不会实现调用。模板是在编译阶段处理的,并且以编译单元为单位。在编译的过程中,指挥编译模板的头部。即:1.定义点 编译头部2.调用点 编译函数体所以在函数调用之前,要对模板进行实例化,形成模板函数,才能形成调用点,...
2019-10-12 11:54:59 548
原创 不用连接函数连接字符串
void *Mystrcat(char *strDes,const char *strSrc){char *p = strDes;assert((strDes != NULL) && (strSrc != NULL));while(*p++){ NULL;}p--;while(*p++ = *strSrc){ NULL;}return strDes;...
2019-10-10 19:02:54 218
原创 魔方阵(子函数)
void MagicSquare(){// 魔方阵都是奇数阵//将1填写在第一行的中间//依次将数字填写在前一个数字的右上方//将魔方阵看成是一个前后左后相连且没有缝隙的封闭空间#define ROW 5 //魔方阵的阶数int arr[ROW][ROW] = {0};int prevRow; //前一个数据存放的行int prevCol; //前一个数据存放的列...
2019-10-10 18:54:57 136
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人