C语言【笔记】——类型转换
(一)自动类型转换
1、非赋值运算的类型转换
图一 数据类型自动转换规则
如上图所示,箭头端表示优先级高,非箭头端表示优先级低。
所以,在不同数据类型参与运算时,优先级低的数据类型会在运算过程中,转变成与优先级高的一致的数据类型。
注意如果两者数据类型处于同一级别时,如char,short,那么,两种数据类型会分别自动转换成int型。
例如:a是int型,b是double型,a+b即先使a变成double型,再与b相加。
2、赋值运算的类型变换
将赋值号右侧表达式的类型自动转换成赋值号左侧类型的变量。
实际,先按照非赋值运算的类型转换的方式对赋值号右侧的表达式进行计算和类型转换,再把数据结果转换成赋值号左侧的变量。
例如:c是char型,a是int型,b是double型,在计算表达式c=a+b运算时,a先变成double型,与b相加,得到的结果会变成c的char型,再赋值给c。
&