C语言中强制类型转换与自动类型转换在应用时有区别吗?

来源:百度知道 编辑:UC知道 时间:2024/05/04 14:32:10
C的类型转换有两种方式:自动类型转换与强制类型转换,他们在形式上是有区别的,不过在实际应用时,用得着强制转换吗?反正计算的时候会进行自动转换的?请专业人士帮我解答一下,在此非常感谢。

有啊,比如说小数取整
double a=2.1;
你只想要他输出2
printf("%d",(int)a);就行了
你不强制他就变不过来;

还有计算3/4
比如说你写int a=3;
int b=4;
printf("%f",a/b);
这时候你得的结果只是0.00000;
为什么不是0.75呢?
你要这么写printf("%f",a/(double)b;
这样就是0.75了

本质是一样的,但是强制转换具有很强的目的性,一般在父类和子类的关系调用里面用的比较多,自动转换一般就是对数字、字符串什么的转换,比较容易出错