【C++】C++的类型转换

【本节内容】

1. C语言中的类型转换
2. C++强制类型转换
(explicit关键字阻止隐式转换的发生)
3. RTTI

1.C语言中的类型转换

首先我们看一段代码了解C语言中的类型转换

void Test() 
{
	int i = 1;     // 隐式类型转换     
	double d = i;    
	printf("%d, %.2f\n" , i, d);      //1    1.00

	int* p = &i;     // 显式的强制类型转换     
	int address = (int) p;

	printf("%x, %d\n", p, address);        //4ff69c    5240476
}

所以,C语言的隐式类型转换发生在相近类型或相关类型间。
显式的强制类型转换发生在不相关的类型间。
首先我们了解到,C语言的类型转换不会改变数值,仅仅改变了数值显示的类型用于数据的解释。
缺陷:转换的可视性比较差,所有的转换形式都是以一种相同形式书写,难以跟踪发现错误的转换

2.C++中的强制类型转换
2.1 C++ 为什么需要类型转换

C风格的转换格式很简单,但是有不少缺点的:

  1. 隐式类型转化有些情况下可能会使结果出问题
  2. 显式类型转换将所有情况混合在一起,代码不够清晰
  3. <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值