小编给大家分享一下c语言如何进行强制类型转换,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
c语言是什么
c语言是一门面向过程的,抽象化的通用程序设计语言,广泛应用于底层开发,使用c语言可以以简易的方式编译,处理低级存储器。
在c语言中,可以通过”(新类型名称)数据或表达式”语句来进行强制类型转换。强制类型转换是程序员明确提出的,需要通过特定格式的代码来指明的一种类型转换。
引用>本教程操作环境:windows7多系统,c99版本,戴尔G3电脑。
数据类型转换就是将数据(变量,数值,表达式的结果等)从一种类型转换为另一种类型。
c语言有两种数据类型方式:
<李>
自动类型转换:就是编译器默默地,隐式地,偷偷地进行的数据类型转换,这种转换不需要程序员干预,会自动发生。
李> <李>强制类型转换
李>自动类型转换是编译器根据代码的上下文环境自行判断的结果,有时候并不是那么”智能”,不能满足所有的需求。如果需要,程序员也可以自己在代码中明确地提出要进行类型转换,这称为强制类型转换。
自动类型转换是编译器默默地,隐式地进行的一种类型转换,不需要在代码中体现出来,强制类型转换是程序员明确提出的,需要通过特定格式的代码来指明的一种类型转换。换句话说,自动类型转换不需要程序员干预,强制类型转换必须有程序员干预。
强制类型转换的格式为:
(type_name),表达式type_name为新类型名称,表达式为表达式。例如:
(浮动),,,,//将变量,a 转换为,float 类型 (int) (x + y);,,//把表达式,x + y 的结果转换为,int 整型 (浮动),100,,,//将数值,100(默认为int类型)转换为,float 类型下面是一个需要强制类型转换的经典例子:
# include & lt; stdio.h> int main () { ,,,int sum =, 103;,,//总数 ,,,int count =, 7,,,//数目 ,,,double 平均;,,//平均数 ,,,average =,(双),sum /,计数; ,,,printf (“Average  is %低频! \ n",,平均); ,,,return 0; }运行结果:
Average is 14.714286 !金额和数量都是int类型,如果不进行干预,那么<代码>总和/数> 代码的运算结果也是int类型,小数部分将被丢弃,虽然是平均是两类型,可以接收小数部分,但是心有余力不足,小数部分提前就被“阉割”了,它只能接收到整数部分,这就导致除法运算的结果严重失真。
既然一般是两类型,为何不充分利用,尽量提高运算结果的精度呢?为了达到这个目标,我们只要将总和或者数其中之一转换为两类型即可。上面的代码中,我们将和强制转换为两类型,这样<代码>总和/数> 代码的结果也将变成两类型,就可以保留小数部分了,平均接收到的值也会更加精确。
在这段代码中,有两点需要注意:
<李>
对于除法运算,如果除数和被除数都是整数,那么运算结果也是整数,小数部分将被直接丢弃;如果除数和被除数其中有一个是小的数,那么运算结果也是小数。
李> <李><代码>()代码>的优先级高于<代码>/> 代码,对于表达式<代码>(双)总和/数> 代码,会先执行<代码>(双)和> 代码,将金额转换为两类型,然后再进行除法运算,这样运算结果也是两类型,能够保留小数部分。注意不要写作<代码> (double)(金额/数量)> 代码,这样写运算结果将是<代码> 代码> 3.000000,仍然不能保留小数部分。
李>以上是“c语言如何进行强制类型转换”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
c语言如何进行强制类型转换