C语言从头学18——类型的自动转换

C语言类型自动转换详解

        某些情况下,C语言会自动转换某个值的类型,以下几种情况有必要了解:
   1、赋值运算过程中类型转换
        赋值运算符会自动将右边的值转成左边变量的类型。
        (1) 浮点数赋值给整数变量,C语言会直接丢弃小数部分,而不是四舍五入。如:
              int x=1.99; //x的值是1而不是2
             这种丢弃对于程序运行中数据的精度有影响,编程过程中必须考虑到。
        (2) 整数赋值给浮点数变量,会自动转变成浮点数,这种转变对精度没有影响。
        (3) 窄类型赋值给宽类型,所谓窄类型即是所占字节数较少的类型,反之就是宽类型。这种转换对程序运算精度没有影响。如:
              char a=127;// char类型占1个字节( 类型占字节数用sizeof()可获得 )
              int x=a; // int类型占4个字节
         (4) 宽类型赋值给窄类型,会发生截值(truncation)现象,还是拿 int 转 char 举例,int占4个字节 char 占一个字节,如把一个 int 类型的值赋给 char 类型变量,int 类型4个字节的值只能将最后一个字节的值传给 char,其余3个字节的值都扔掉了。为了保证精度,这种情况应当尽量避免。但有时我们也反其道而用之,比如需要取整时,我们把float类型值或变量赋给 int 类型变量,就可以达到取整的目的。
   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值