c++自学笔记day03

c++中的类型转换

1、隐式类型转换规则:

这种转换常见于两个不同类型的操作数进行运算的时候会发生。

(1) 如果操作数有浮点类型,则会转换成浮点类型

    例如:(int) + (float) ---> (float) + (float)

               (int) + (double) ---> (double) + (double)

(2) 如果两个操作数都是整型,但是级别不同,会进行整型提升

    当两个操作数都是 有/无 符号类型的时候,将级别低的转成级别高的类型    例如:(short) + (int) -----> (int) + (int)

    当两个操作数,一个是有符号类型,另一个是无符号类型,无符号类型的级别比有符号类型要高,那么把有符号的类型转成无符号类型

    当两个操作数,一个是有符号类型,另一个是无符号类型,无符号类型的级别比有符号低,且有符号可以容纳无符号全部的值(字节数更大),那么把无符号转成有符号类型。

    否则,两者转成有符号的无符号类型。


2、函数参数的类型转换:

     当函数的实参类型比形参规定的类型要低就会进行整型提升   例如:f(int i){}   short i = 1 ; f(i) 这个时候 i 会进行类型提升到 int

     同理 float ----->  double


3、强制类型转换:

     c语言中的强制类型转换方式: (typename)value

     c++中的强制类型转换方式:typename(value)

     c++中后续提供了4种更安全的类型转换方式,其中一种是 static_cast<typename>()


4、auto关键字

     c++重新定义了auto关键字,可以根据字面值的类型来决定变量的类型。  例如: auto a = 1.0f; 这个时候 a 会自动变成 float类型

     auto设计出来是用于复杂的复合类型声明之用的,这个在后续学习STL模板库的时候,会再次提到。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值