数据类型转换(c语言)

** 在c语言中进行混合运算时,不同的类型需要先转换成同一类型,然后才进行运算。如表达式,10+10.3+‘a’。在c语言中,类型转换的方法由两种,一种是自动类型转换,另一种是强制类型转换。**

1.自动类型转换

自动类型转换在不同类型数据类型的量混合运算时,由编译系统系动完成。
自动类型转换遵循以下规则。
(1)若参与运算的类型不同时,先转换成同一的类型,然后进行运算。
(2)转换按数据长度增加的方向进行,以保障精度不降低。如int型和long型或unsigned型运算时,先把int型转换成long或unsigned型后再进行运算;int型和char型运算时,先把char转换成int型后再进行运算,如下图所示:
自动转换类型
(3)所有的浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换为double型,再作运算。
(4)插入型和short型参与运算时,必须先转换为int型。
(5)再赋值运算中,赋值号的两边量的数据类型不同时,赋值号右边量的类型转换为左边量的类型。当右边量的类型长度比左边的长时,将会丢失一部分数据,可能导致数值改变或降低。

2强制类型转换

强制类型转换来实现,可利用强制类型转换一个表达式的值转换为所需要的类型。一般的形式:
(类型标识符)(表达式)如:(int)(a/5);
(double)c;//将变量c强制转换伟double型;
(int)c/f;//将c的类型强制转换伟int型,然后再除f;
(float)(ab)/5;//将ab的而结果强制转换伟float型,然后再除5;
强制类型转换时,注意几点:
(1)类型的标识符和表达式必须加括号(单个变量不加括号)
(int)(x/y)和(int)x/y是不同的。
(2)在强制类型转换后,原变量的类型不会改变,只是表达式的运算结果的类型临时改变
int a ;double b;
b=(double)(a/4);
a的类型没有改变,还是int类型。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值