类型转换:自动转换和强制类型转换的详解

        C语言中对不同类型的数据进行混合运算时需要进行类型转换。转换的方式有两种,一是自动转换(隐式转换),二是强制类型转换(显示转换)。

        一:自动转换

                 (1)赋值转换

                        赋值运算符两边的数据类型不同,系统将进行自动转换。赋值运算符右边表达式的类型转换成赋值运算符左边变量的类型,然后对变量赋值。

                        具体的赋值转换规则:

                        1) 浮点数(实型)值赋给整型变量时,舍去小数部分。

                        2) 整型值赋给浮点数(实型)变量时,增加小数部分(小数点后的部分全为0)。

                        3) 字符赋给整型变量时,将字符的ASCII码值赋给整型变量。

                (2)运算转换

                        不同类型的值在同一表达式中进行混合运算时,它们将自动转换成同一类型,然后进行运算。

                       1) 转换时按照数据长度(该类型数据占用存储单元的字节数)增加的方向进行。即按“向高看齐”的原则,提升“较低”的类型,从而保证精度不被降低。

                       2) 转换时一步到位的转换,例int和long混合运算时,并非时先把int转换为unsigned,在转换为long,而是直接把int转换为long。

                       3) 类型转换:数据按照转换后的类型参加运算,但运算过程并不会改变数据本身的类型。

                        4)  上图中横向箭头的含义:实型数都是按双精度参与运算的。也就是说,两个float的变量进行运算,也实现转换为double类型,然后进行运算。同理,char、short也是先转换为int,在进行运算。

二:强制类型转换

        (类型说明符)表达式

                强制类型转换时,必须使用一组圆括号,括住要转向的类型说明符。

                要转换类型的表达式一般也加圆括号,如果是原子表达式,也可不加。

                强制类型转换和自动转换一样,并不会改变原表达式本身的值与类型,只是通过对原来表达式强制转换,得到一个新类型的数据而已。

(ps:如果以后有更多的新知识,会继续更改,欢迎大家留言!)

                        

                                

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值