c语言的隐式(自动)数据类型转换

转载自  https://blog.csdn.net/u010815257/article/details/50178499

一.算术运算符中的转换规则:

double ←── float 高

long

unsigned

int ←── char,short 低

注意:图中横向箭头表示必须的转换,如两个float型数参加运算,虽然它们类型相同,但仍要先转成double型再进行运算,结果亦为double型。纵向箭头表示当运算符两边的运

算数为不同类型时的转换,如一个long 型数据与一个int型数据一起运算,需要先将int型数据转换为long型, 然后两者再进行运算,结果为long型。所有这些转换都是由系统自动

进行的, 使用时你只需从中了解结果的类型即可。这些转换可以说是自动的。

二.赋值运算符中的转换规则:

在赋值运算中,赋值号两边量的数据类型不同时, 赋值号右边量的类型将转换为左边量的类型。 如果右边量的数据类型长度左边长时,将丢失一部分数据,这样会降低精度, 

丢失的部分按四舍五入向前舍入。

注意:常量的默认转换类型:

1.整型常量的默认数据类型是int类型,即有符号整型。

2.浮点数常量的默认类型是double类型,即长浮点数类型。

三.输出时的转换:

在程序中将数据用printf函数以指定格式输出时,当要输出的盐据类型与输出格式不符时,便自动进行类型转换,如一个long型数据用整型格式(%d)输出时,则相当于将long型转

换成整型(int)数据输出;一个字符(char)型数据用整型格式输出时,相当于将char型转换成int型输出。

注意:较长型数据转换成短型数据输出时,其值不能超出短型数据允许的值范围,否则转换时将出错。


猜你喜欢

转载自blog.csdn.net/wz947324/article/details/79972347
今日推荐