conversion类型转换1(隐式转换)----C++学习之路

  1.隐式转换:

从概念上来说,隐式转换就是编译器帮你转换的,你看不见的。

例子:

int a = 3.54 + 4;
这个例子很明显a=7。但是从类型的转换顺序来看,可能与自己想的不太一样。

当在表达式中,含有int与double,那么int会转化成double类型,例子中的4就会转换成doulb类型,得到结果7.54这个doulbe类型的值。

但是,a的类型是不能改变的,所以double又转换成为int,得到7.

  2.算术转换

概念:将一种算术类型转换成另一种算术类型。

最明显的例子就是运算符的运算对象会转换成最宽的类型,如果算术中含有long double,那么不管其他类型是什么都会转换成long double。

还有一个例子就是第一点中提到的,double 与int共存时候,会自动转换成double。

  3.整形提升

概念:把小整数类型转换成大整数类型。例如bool中的false提升为int的0,true提升为int的1.

较大的char类型(wchar_t,char16_t,char32_t)提升为int,unsigned int,long unsigned long,long long,unsigned long long 中最小的类型,前提就是转换后的类型

要包含原来的类型的所有可能的值。

  4.数组转换成指针

数组会自动转换成为指向数组首元素的指针。当然,在decltype & sizeof typeid 中是不会有类似的转换。

int ia[10];
int* p=ia;



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值