
计算机基础
文章平均质量分 54
L一抹阳光
努力且坚定。
展开
-
C/C++内存对齐以及类的大小计算详解
内存对其规则:(1)结构体第一个成员的偏移量(offset)为0,以后每个成员相对于结构体首地址的 offset 都是该成员大小与有效对齐值中较小那个的整数倍,如有需要编译器会在成员之间加上填充字节。(2)结构体的总大小为有效对齐值 的整数倍,如有需要编译器会在最末一个成员之后加上填充字节。 类作为一种类型定义是没有大小可言的,这里的大小指的是类的对象所占的大小,使用sizeof对一个类型名操作,得到的是具有该类型实体的大小,计算遵循结构体的对齐原则。类的大小与普通数据成员有关,与成员函数和静态成员无原创 2021-09-24 20:08:01 · 1625 阅读 · 1 评论 -
动态多态(虚函数、虚函数表、虚函数指针)
虚函数表就是存放虚函数地址的一个指针数组,虚函数指针就是指向虚函数表的一个指针。 同一个类的不同实例共用同一份虚函数表,他们都通过一个虚表指针指向该虚函数表。虚函数表是在编译期间创建好的,只存在一份。实例化类对象时,编译器自动将类对象的虚表指针指向虚函数表。 虚表指针是在调用构造函数时获得值的,所以构造函数一定不能是虚函数。(因为调用虚函数需要虚表指针获得地址,若构造函数是虚函数,此时虚表指针还没有赋值,无法调用)原创 2021-06-19 16:53:23 · 641 阅读 · 0 评论 -
字符字面值和string对象相加(易犯错)
两个string对象可以使用+直接进行拼接,但对于字面值和string对象相加则可能是不合法的。 规则:当把string对象和字符字面值及字符串字面值混在一条语句中使用时,必须确保每个加法运算符(+)的两侧的运算对象至少有一个是string。原创 2021-05-20 21:38:22 · 415 阅读 · 0 评论 -
TCP连接——三次握手
三次握手 第一次握手:建立连接时,客户端发送syn包(syn=x)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RECV状态; 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入EST转载 2021-05-06 20:39:00 · 594 阅读 · 0 评论 -
从输入网址到浏览器显示的过程
用户输入url,例如http://www.baidu.com。其中http为协议,www.baidu.com为网络地址,及指出需要的资源在那台计算机上。一般网络地址可以为域名或IP地址,此处为域名。使用域名是为了方便记忆,但是为了让计算机理解这个地址还需要把它解析为IP地址。 客户端先检查本地是否有对应的IP地址,若找到则返回响应的IP地址。若没找到则请求上级DNS服务器,直至找到或到根节点。DNS域名解析系统本质就是一个数据服务器,里面存储了域名和IP的对应关系,有了IP地址,才能访问一台服务器。 建原创 2021-05-06 16:36:10 · 269 阅读 · 0 评论