类型转换

 

                                               隐含转换

一些二元运算符(算术运算符、关系运算符、逻辑运算符、位运算符和赋值运算符)要求两个操作数的类型一致

在算数运算和关系运算中如果参与运算的操作数类型不一致,编译系统会自动对数据进行转换(既隐含转换),基本原则是将低类型数据转换为高类型数据

数据类型由低到高的次序:

                                    char(unsigned)

                                      short(unsigned)

                                 ↓     int(unsigned)

                                      long(unsigned)

                                      long long

                                      float

                                    double

条件

             转换

有一个操作数是long double型。将另一个操作数转换为long double型。
前述条件不满足,并且有一个操作数是double型。将另一个操作数转换为double型。
前述条件不满足,并且有一个操作数是float型。将另一个操作数转换为float型。
前述条件不满足(两个操作数都不是浮点数)。

有一个操作数是

unsigned long long型

将另一个操作数转换为 unsigned long long 型
有一个操作数是long long型,另一个操作数是unsigned long型。将两个操作数都转换为 unsigned long long 型
前述条件不满足,并且有一个操作数是 unsigned long型。将另一个操作数转换为 unsigned long 型
前述条件不满足,并且有一个操作数是long型,另一个操作数是 unsigned int型。将两个操作数都转换为 unsigned long 型
前述条件不满足,并且有一个操作数是 long型。将另一个操作数转换为 long 型
前述条件不满足,并且有一个操作数是 unsigned int型。将另一个操作数转换为 unsigned int 型
前述条件都不满足将两个操作数都转换为 int 型

                                      混合运算时数据类型的转换

将一个非布尔类型的算数值赋给布尔类型时,算数值为0结果为false,否则结果为true
将一个布尔值赋给非布尔类型时,布尔值为false则结果为0,布尔值为true则结果为1

将一个浮点数赋值给整数类型时,结果值将只保留浮点数中的整数部分,小数部分将丢失(这个过程不会发生四舍五入,就纯粹是把小数部分给舍掉了)

将一个整数值赋值给浮点数类型时,小数部分记为0,如果整数所占的空间超过了浮点类型的容量,精度可能有损失

                                           显式转换

显式类型转换的作用是将表达式的结果类型转换为类型说明符所指定的类型
语法形式

C语言类型显式转换方式:

                                       类型说明符(表达式)

                                      (类型说明符)表达式

C++类型显式转换方式:

                                      类型转换操作符<类型说明符>(表达式)

类型转换操作符

const_cast                         删除const变量的属性,方便赋值

dynamic_cast                    用于将一个父类对象的指针转换为子类对象的指针或引用

reinterpret_cast                 将一种类型转换为另一种不同的类型

static_cast                         用于静态转换,任何转换都可以用它,但他不能用于两个不相关的类型转换。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值