C语言—强制类型转换


强制类型转换(数据类型)
注意:强制类型转换是不安全的,要谨慎使用
小的类型转大的类型,一般没有问题
大的类型转小的类型,就可能出现数据的截断和丢失
所谓的强制类型转换,简称强转,就是在某次运算中采用某种方式,将变量的类型转换成其他类型来参与本次运算。不会影响变量自身的类型,变量自身的类型只和定义变量时有关。

1 显式强转

格式:
(新的类型)变量名;
例:

1 #include <stdio.h>
2
3 int main(int argc, const char *argv[])
4 {
5 int m = 5;
6 int n = 2;
7 float ret1 = m/n;
8 printf("ret1 = %f\n", ret1);//2.000000
9 //原因是 m和n 都是int类型 所以运算的结果也是 int类型
10 //会把小数部分舍弃 m/n 的结果就已经是 2了
11 //再把他赋值给 float类型的变量 结果就是 2.000000 了
12
13 float ret2 = (float)m/(float)n; //整形做除法 需要强转成 浮点型 参
与运算
14 printf("ret2 = %f\n", ret2);//2.500000
15
16 //强制类型转换不会改变变量自身的类型
17 printf("m = %d, n = %d\n", m, n);//5 2
18
19 return 0;
20 }

2 隐式强转

隐式是由编译器根据上下文自动推导出来的,如果编译器认为本次转换是安全的,则允许直接使用。如果编译器认为本次转换是不安全的,可能会报一个警告,具体报不报取决于编译器的严谨程度
例:

1 #include <stdio.h>
2
3 int main(int argc, const char *argv[])
4 {
5 float m = 314.567;
6 int n = m;//这种操作相当于对浮点型取整的操作
7 //会舍弃小数部分
8 printf("n = %d\n", n);// 314
9
10 return 0;
11 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值