C++ 命名类型转换

传统艺能😎

小编是双非本科大二菜鸟不赘述,欢迎米娜桑来指点江山哦
在这里插入图片描述
1319365055

🎉🎉非科班转码社区诚邀您入驻🎉🎉
小伙伴们,满怀希望,所向披靡,打码一路向北
一个人的单打独斗不如一群人的砥砺前行
这是和梦想合伙人组建的社区,诚邀各位有志之士的加入!!
社区用户好文均加精(“标兵”文章字数2000+加精,“达人”文章字数1500+加精)
直达: 社区链接点我


在这里插入图片描述

类型转换🤔

任何一门语言里面都会遇到赋值符号两边不同的情况,或者形参和实参不匹配,这种情况就存在类型转换,特别是 C++ 这种强类型语言,即使不发生显示的强制转换也会进行隐式类型转换

其实在C语言阶段就早有提出两种类型转换方式:

  1. 显示类型转换:需要手动转换成需要的类型对象:(指定类型)变量
  2. 隐式类型转换:在代码编译阶段自动执行,能转就转,不能转就编译失败

当然并不是显示转换就可以随心所欲的转换, 只有相近类型之间才能发生隐式类型转换 \color{red} {只有相近类型之间才能发生隐式类型转换} 只有相近类型之间才能发生隐式类型转换,比如 int 和 double 表示的都是数值,不过它们的范围和精度不同。而指针类型表示的是地址编号,因此整型和指针类型之间不会进行隐式类型转换,如果需要转换则只能进行显式类型转换:

int main()
{
   

	//显式类型转换
	int* p = &i;
	int address = (int)p;
	cout << p << endl;
	cout << address << endl;
	return 0;
	
	//隐式类型转换
	int i = 1;
	double d = i;
	cout << i << endl;
	cout << d << endl;
}

四大类型转换🤔

介于类型转换的场合非常多,且存在一些复杂场景的类型转换,单纯的 C 语言的类型转换虽然简单,但是存在精度丢失、可视性差等缺陷,于是 C++ 标准推出了四大命名类型转换操作符:

static_cast
reinterpret_cast
const_cast
dynamic_cast

static_cast😋

static_cast 用于相近类型之间的转换,编译器隐式执行的任何类型转换都可以用 static_cast,但它不能用于不相关类型之间的转换:

int <
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乔乔家的龙龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值