1、各种数据类型的关键词不同。short、long、int、float、double、char六个关键词表示C语言里六种基本数据类型。不同数据类型占用内存的大小不同。
1、强制类型转换的一般形式为:(类型说明符)(表达式),例如:(float)a 把a转换为浮点型,(int)(x+y)把x+y的结果转换为 整型 强制类型转换是通过类型转换运算来实现的。
2、类型转化的原则是从低级向*自动转化(除非人为的加以控制)。
3、强制类型转换是把变量从一种类型转换为另一种数据类型。例如,如果您想存储一个 long 类型的值到一个简单的整型中,您需要把 long 类型强制转换为 int 类型。
4、显式转换,就是强制转换。在被转换的表达式前加(类型),比如:(float)5,就是把5显式转换成float类型。
5、a为char型,b为float型,因此char a的值自动强制转换为float临时变量参与计算a+b,以防精度损失。a+b结果是(float)a+3f=93f。
6、不同类型的数据混合运算,自动转换成最复杂的类型。强制类型转换。float fA = 0.2; int iB = (int)fA;指针强制类型转换。
在实用显示的强制类型 dynamic_cast 的时候,在VC0下需要设置,才可以使用。工程(projece)-设置(setting)在里面知道C/C++那个选项。
必须有虚函数;必须打开编译器的RTTI开关(vc6: progect- settings - c/c++ tab -category[c++ language]- Enable RTTI);必须有继承关系。
即里面的执行流程 这个if中作为条件判断的是b3 首先是执行B *b3=dynamic_castB*(a1), 然后再用结果b3作为条件判断,如果转换失败,b3=NULL,也就相当于if(NULL) 或者if(0),所以条件会为假,执行else下面的语句。
通常情况下有4种方式进行强制类型转换,他们是static_cast、const_cast、dynamic_cast、reinterpret_cast。