C++变量类型相互转换(自动转换和强制转换)
首先、作为一个职场小白,在此分享一下自己学习C++的一些心得体会,有问题大家可以留言区评论。如有错误,会马上纠正。
步入正题,今天要说的是C++中变量类型的相互转换有以下两种:
- 自动转换
- 强制转换
自动转换
为保证精度,转换按照数据长度增加方向进行转换。如int和long进行运算,需要把int转换为long再进行运算
char和short参与运算时,必须转换成int型
参与运算的类型不同,需提前转化成相同类型
赋值操作时,=左右类型不同是,右边类型会自动转换成左边类型,如果右边类型长度>左边类型长度,则会降低精度
强制转换
其形式为:
(类型符号)(表达式) 例如:
(int)b表示把b强制转换成int类型
代码解释
自动转换
/* 输出为3. 损失精度(小数部分)*/
int a = 2;
double b = 3.5;
a = b;
cout << a << endl; //output:3
强制转换
/* 输出为5. b强制转换成int类型*/
int a = 2;
double b = 3.5;
a += (int)b;
cout << a << endl; //output:5