如果计算表达式中各个变量的类型不同,如何计算该表达式?
1、如果任何一个操作数为long double类型,则将另一个操作数转换为long double类型。
2、否则,如果任何一个操作数为double类型,则将另一个操作数转换为double类型。
3、否则,如果任何一个操作数为float类型,则将另一个操作数转换为float类型。
4、否则,如果任何一个操作数为unsigned long类型,则将另一个操作数转换为unsigned long。
5、否则,如果一个操作数为long类型且另一个操作数为unsigned int类型,则结果依赖于long类型是否可以表示所有的unsigned int类型的值。如果可以,则将unsigned int 类型的操作数转换为long类型;如果不可以,则将两个操作数都转换为unsigned long类型。
6、否则,如果一个操作数为long类型,则将另一个操作数转换为long类型。
7、否则,如果一个操作数为unsigned int 类型,则将另一个操作数转换为unsigned int类型。
8、否则,将两个操作数都转换为int类型。
注意1:在规则8中,将两个操作数都转换为int类型。如果操作数中有enum,char,short,则一律将其转换为int类型,做整型运算。
注意2:在这里不包含强制类型转换。
本人现经营一个微信订阅号如下:欢迎大家关注,获取相关内容。
订阅号账号是:begginghard_zgh

算术类型转换,布布扣,bubuko.com
算术类型转换
原文:http://blog.csdn.net/begginghard/article/details/20299451