1.数据类型的转换会不会改变原变量(原表达式)类型?
不会,类型转换都是为了本次运算而进行的临时性转换,转换结果会保存到临时内存空间,不会改变数据本来的类型或值。
2.用什么查看变量类型?
typeid(变量).name()
3.转换方法
c++:(type-name)expression ;
c : static_cast<type-name>(expression);
4.C++中自动类型转换
(1)将一种类型的数据赋值给另外一种类型的变量;
赋值运算中,赋值号两边的数据类型不同时,需要把右边表达式的类型转换为左边变量的类型,这可能会导致数据失真,或者精度降低;
自动类型转换并不一定是安全的。对于不安全的类型转换,编译器一般会给出警告。
(2)在不同类型的混合运算中,编译器会自动地转换数据类型,将参与运算的所有数据先转换为同一种类型,然后再进行计算。
转换规则:
①转换按数据长度增加的方向进行,以保证数值不失真,或者精度不降低。
例如,int 和 long 参与运算时,先把 int 类型的数据转成 long 类型后再进行运算。
②所有浮点运算都以双精度进行,即使运算中只有 float 类型,也先转换为 double 类型才进行运算。
③char 和 short 参与运算时,必须先转换成 int 类型。