C语言数据类型转换


计算机进行算术运算时,要求各操作数的类型具有相同的大小(存储位数)及存储方式,不能将char 型( 1 字节)数据与 int 型(2、4或8字节)数据直接参与运算;由于存储方式的不同,也不能将 int 型数据与 double 型数据直接参与运算。

然而,由于 C语言的灵活性,在一个表达式或一条语句中,允许不同类型的数据混合运算。

C语言的灵活性与计算机的机械性是一对矛盾,如处理不好,将会产生错误结果。对于某些类型的转换编译器可隐式地自动进行,不需程序员干预,称这种转换为自动类型转换;而有些类型转换需要程序员显式指定,这种类型转换称为强制类型转换

一、自动类型转换

一个表达式中出现不同类型间的混合运算,较低类型将自动向较高类型转换。

不同数据类型之间的差别在于数据的取值范围和精度上,一般情况下,数据的取值范围越大、精度越高,其类型也越“高级”。

整型类型级别从低到高依次为:

signed char->unsigned char->short->unsigned short->int->unsigned int->long->unsigned long

浮点型级别从低到高依次为:

float->double

float浮点类型被我们弃用了,所以不提它了。

1、操作数中没有浮点型数据时

当 char、unsigned char、short 或 unsigned short出现在表达式中参与运算时,一般将其自动转换为 int 类型。

int 与 unsigned int混合运算时,int自动转换为unsigned int型。

int、unsigned int 与 long 混合运算时,均转换为 long 类型。

2、操作数中有浮点型数据时

当操作数中含有浮点型数据时,所有操作数都将转换为 double 型。

例如:

int ii=100;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

C语言技术网-码农有道

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

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

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

打赏作者

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

抵扣说明:

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

余额充值