
计算机基础
HLongSh
这个作者很懒,什么都没留下…
展开
-
C语言函数调用及栈帧结构
原文:http://blog.youkuaiyun.com/qq_29403077/article/details/53205010一、地址空间与物理内存 (1)地址空间与物理内存是两个完全不同的概念,真正的代码及数据都存在物理内存中。 物理储存器是指实际存在的具体储存器芯片,CPU在操纵物理储存器的时候都把他们当做内存来对待,把他们看成由若干个储存单元组成的逻辑储存器,这个逻辑储存器就是我们转载 2018-02-21 22:48:13 · 892 阅读 · 0 评论 -
子网掩码
示例是A类地址。255.255.192.0 子网数=1022,主机数=16382子网掩码 获得 子网数,主机数主机数上面的二进制表示为11111111 11111111 11000000 00000000后面0的个数为14个,全部变为1 。00111111 11111111转化为 十进制-1就是16382子网数A类地址 前8位全部为1,全部无视。只看剩下的1。剩下11111111 11 转化成1...原创 2018-05-25 13:48:58 · 1009 阅读 · 0 评论 -
Http协议与TCP协议简单理解
原文地址:https://blog.youkuaiyun.com/sundacheng1989/article/details/28239711在C#编写代码,很多时候会遇到Http协议或者TCP协议,这里做一个简单的理解。TCP协议对应于传输层,而HTTP协议对应于应用层,从本质上来说,二者没有可比性。Http协议是建立在TCP协议基础之上的,当浏览器需要从服务器获取网页数据的时候,会发出一次Http请求。...转载 2018-03-25 19:28:02 · 116 阅读 · 0 评论 -
虚函数原理
看了一下虚函数,原理不难理解,反倒最后的二维数组看不懂了,回顾一下二维数组的遍历概念二维数组:二维数组的第一个[]等于每一个指向一维数组地址的指针(行指针),第二个[]等于指向数据的指针。二维数组遍历方式:void func3(int (* p)[3], int row, int col){ for(int i=0; i<row; ++i){ for(int ...转载 2018-03-19 14:06:08 · 237 阅读 · 0 评论 -
纯C语言简单模拟C++的虚函数表
原文:http://blog.youkuaiyun.com/smstong/article/details/50669732多态,面向接口编程等设计方法并没有绑定到任何特定的语言上,使用纯C也可以实现简单的多态概念。下面给出一个非常简单粗糙的例子,只为说明概念。父类Animal定义 文件:animal.h#ifndef ANIMAL_H#define ANIMAL_H/* 方法表, 类似于C++的虚函...转载 2018-03-19 06:36:04 · 991 阅读 · 1 评论 -
c++重载箭头运算符
一句话:对箭头的返回值做->操作,如果返回值重载了->则调用重载的。 a)如果返回的是一个指针将调用内置的箭头运算符。执行相当于(*(p.operator->()).mem;的操作。 b)如果返回是一个重载了箭头运算符的对象,则继续对该对象调用其重载了的箭头运算符,直到返回的是一个指针,将对该指针调用a)的操作。操作相当于(*(p.operator->()....原创 2018-03-18 04:52:31 · 382 阅读 · 0 评论 -
get请求URL编码2次
中文->url按照编码为utf-8转换->对utf-8再次转换,转换成ascii;服务器接受->自动url解码iso-8895-1一次ascii变utf-8->后台对utf-8解码,得到中文。原创 2018-03-17 23:18:54 · 958 阅读 · 0 评论 -
c++函数包装器
类似于jdk的动态代理一样,其实只是一个函数接受一个函数指针调用一下...#include<iostream>#include<functional>using namespace std;template<typename T, typename F>T run(int a,T v, F f)//代理类{ std::cout << "执...原创 2018-03-12 07:29:32 · 508 阅读 · 0 评论 -
对于C/C++,java的volatile关键字的个人理解
C/C++中的volatile是禁止编译器对变量的操作进行优化,每次读取需要从内存读取,不允许从cpu缓存或者寄存器中取值。参考文章:http://blog.youkuaiyun.com/qq_29350001/article/details/54024070java中volatile有主要2个功能第一个,禁止重排序,在变量前与变量后的语句即使重排序也不会交换到变量的前面或者后面。int a=1;//可能与b...原创 2018-03-17 15:11:26 · 874 阅读 · 0 评论 -
java与c++运算符优先级
int x = 1; int y = 1; int sum = x + y + (--y * 2);求上面代码sum的值c++的自增自减运算符优先级最高所以是x(1)+y(0)+(0*2);java并不是这样的,自增自减运算符跟+号是平级的,所以从左到右,因为是表达式相加,所以从左到右是x(1)+y(1)+(0*2);...原创 2018-03-16 05:24:38 · 242 阅读 · 0 评论 -
完整的网络通讯过程
交换机的作用是将将所有电脑连接在同一个网段内,那么该网段内的电脑就可以实现相互通讯 A电脑 IP:192.168.1.1 B电脑 IP:192.168.1.2 假如A电脑想要PING通B电脑时,先向交换机发送一个包,里面包含要通讯的IP地址,然后交换机会通过其网段的广播 端口向网段内的所有机器广播该数据包,只有对应IP地址的机器会反馈一个包(包中包含该IP对应的mac地址),(其余 的机器...转载 2018-08-02 05:02:45 · 548 阅读 · 0 评论