C语言之类型转换

数据类型转换一般遵循少量的原则,一般来说,自动转换是将“窄”操作数转换成“宽”操作数,以至于不会丢失信息。把长类型的数据复制给短类型时会发生数据丢失。这可能会产生警告,但是是合法的。
    机器字符集中的字符按照ASCII码表示都是正数,但是任意的位形式存放在字符变量中可能会是负的,这个根据机器决定。为了易用性,当需要存放一些非字符的数据在字符类型中时,需要定义该char变量是signed还是unsigned。
    需要注意的是,float不会自动转化为double类型,这是和原始的定义的一个改变,在数学运算的库中,都会使用double精度,而用float的主要原因是在大的数组中保存数据,少部分原因是减少机器时间,因为double精度非常耗时。
    当涉及到unsigned操作数时,情况会变得比较复杂。
    在赋值的时候也会发生类型转换,右边的值会被转化成左边的类型,这个也是整个结果的类型。long转化为short或者char时,会丢掉超过的位;float转化为int会丢掉小数部分。
    在函数调用参数传递是也会发生类型转换,通常是自动转换。
    明确地转换时通过强制转换符强制转换(cast),注意在强制转换的时候,是在原数的基础上产生一个新的值,原数并没有改变。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值