7.C++程序中的基本数据类型-数据类型之间的转换

在C++中,类型转换是将一个数据类型转为另外一个数据类型,其转换过程比较复杂,目前只讨论基本数据类型之间的转换。

类型转换分为两部分:隐式转换和显示转换

隐式转换又称为自动转换,显示转换又称为强制转换。

隐式转换(自动转换)

 这个转换是由编译器自动完成,编译器会自动将较小类型转换为较大精英,比如将int转为float,将int转为 long ,将float 转为double等,这种转换不会有数据精度的损失。

#include <iostream>
using namespace std;


int main() {

   short int shortNumber=10;//定义一个short型
   
   cout <<"typeId:"<< typeid(shortNumber).name() << endl;

    int intNumber=10;
   
   cout <<"typeId:"<< typeid(intNumber).name() << endl;
   
   int intNumber2=shortNumber; //定义一个整数型,并且将short型直接赋值给整数型
   
   cout <<"typeId:"<< typeid(intNumber2).name()<< " value:"<<intNumber2 << endl;

}

上面的内容,是一个隐式转换,由编译器自动完成,没有报错和警告,可以直接运行

显式转换(强制转换)

如下面的将double转为int类型,涉及到精度变化或丢失就需要强制转换了

#include <iostream>
using namespace std;


int main() {

	double d = 3.14;
	int i = (int)d; // double转为int 类型,因为涉及到精度丢失,所以必须使用强制转换,只保留整数部分

	cout << "typeId:" << typeid(d).name()<<"     value:"<< d << endl;
	cout << "typeId:" << typeid(i).name()<<"     value:"<< i << endl;



}

转换成i类型后,丢失了小数部分,降低了精度。

强制转换一般是在变量前面加上要转换成的数据类型,如上面的(int) d这样的形式。在后面实际开发过程中,涉及到的话,再详情讲,只要大家知道,不同精度之间的数据可以通过自动或强制转换数据类型即可。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值