摘要:
1.虚函数和纯虚函数可以定义在同一个类(class)中,含有纯虚函数的类被称为抽象类(abstractclass),而只含有虚函数的类(class)不能被称为抽象类(abstractclass)。 2.虚函数可以被直接使用,也可以被子类(subclass)重载以后以多态的形式调用,而纯虚函数必须在子类(subclass)中实现该函数才可以使用,因为纯虚函数在基类(baseclass)只有声明而没有定义。3.虚函数和纯虚函数都可以在子类(subclass)中被重载,以多态的形式被调用。4.虚函数和纯虚函数通常存在于抽象基类(abstractbaseclass-ABC)之中,被继承的子类重载,目. 阅读全文
摘要:
printf不会关心你输入的参数的类型,你输入的实际是 printf("%f",3),但是这个整型3不会被隐式类型转换为浮点型,而是被直接按内存内容当作浮点型 也就是说,内部使用等价于 int i = 3; printf("%f", *(float*)&i) 不幸的是,整型3在内存布局上如果看成浮点数,它就是接近于0完整的说明一下吧。 首先 printf("%f",10/3);等价于 printf("%f",3);也就是说在这种情况下C不支持类型转换。并且"%f"处理的是double类型 阅读全文
摘要:
学计算机N年了,一年懒得去了解小数的存放,趁今天想知道double数据存放格式,了解了一下,真是懒不得,无论什么样的基础知道,早晚一天还是要学到心中的。一、浮点型数据在内存中存储的表示实数在内存中以规范化的浮点数存放,包括数符、阶码、尾数。数的精度取决于尾数的尾数。比如32位机上float型为23位(因为规范化数的数码最高位恒为1,不必存储,实际精度为24位,下面会有详解),double型为52位。单精度float型存储在内存中的大小为4个字节,即32位。xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx浮点表示法类似于科学计数法,任一数均可通过改变指数部分,使小数点位置发 阅读全文
摘要:
数据在存放到内存里的时候,有两种存放方式,即:Big Endian(大端模式) 和 Little Endian(小端模式)这两个存取方式决定了内存存放数据的原则是 高高低低 原则 还是 高低低高 原则。高高低低--内存中的高位存放数据的高位,内存中的低位存放数据的低位(Little Endian )高低低高--内存中的高位存放数据的低位,内存中的低位存放数据的高位(Big Endian )比如:我有一个数据,是0xA5A1,它在存放到内存中是怎样存放的呢?因为在我们平时的书写中,A5是高位,A1在低位,存放到内存中的时候,A1存放在0x4000这个位置,而A5存放在0x4001这个位置,高位存 阅读全文
摘要:
学计算机N年了,一年懒得去了解小数的存放,趁今天想知道double数据存放格式,了解了一下,真是懒不得,无论什么样的基础知道,早晚一天还是要学到心中的。一、浮点型数据在内存中存储的表示实数在内存中以规范化的浮点数存放,包括数符、阶码、尾数。数的精度取决于尾数的尾数。比如32位机上float型为23位(因为规范化数的数码最高位恒为1,不必存储,实际精度为24位,下面会有详解),double型为52位。单精度float型存储在内存中的大小为4个字节,即32位。xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx浮点表示法类似于科学计数法,任一数均可通过改变指数部分,使小数点位置发 阅读全文
摘要:
位段(bit-field)是以位为单位来定义结构体(或联合体)中的成员变量所占的空间。含有位段的结构体(联合体)称为位段结构。采用位段结构既能够节省空间,又方便于操作。 位段的定义格式为: type [var]:digits 其中type只能为int,unsigned int,signed int三种类型(int型能不能表示负数视编译器而定,比如VC中int就默认是signed int,能够表示负数)。位段名称var是可选参数,即可以省略。digits表示该位段所占的二进制位数。 那么定义一个位段结构可以像下面这段代码去定义:struct node{ unsigned int a:4; //. 阅读全文