黑马程序员技术交流社区

标题: 关于三元运算符中的类型提升 [打印本页]

作者: Wanibal    时间: 2016-4-28 23:20
标题: 关于三元运算符中的类型提升

看了一篇好的关于三元运算符的讲解,就拿过来了,是关于三元运算符中的类型提升

[html] view plaincopy



[html] view plain copy




涉及到了三元运算中类型自动提升的一些问题,运算结果如下:

[html] view plaincopy



[html] view plain copy




总结出了以下的结论:

(1)假如表达式1和表达式2具有相同的类型,那么整个条件运算符结果的类型就是这个类型。
(2)假如一个表达式的类型是T,T是byte或short或char,另一个表达式的类型是int类型的常量表达式,而且这个常量表达式的值是可以用类型T表示的(也就是说,常量表达式的值是在类型T的取值范围之内),那么整个条件运算符结果的类型就是T。
(3)除以上情况外,假如表达式1和表达式2的类型不同,那么将进行类型提升,整个条件运算符结果的类型就是提升后的类型

根据上述结论可以看出,参考结论(2)char类型的取值范围为0-65535,在char取值范围中均会返回char类型的值,所以输出a。-1和65536超出了char的取值范围,所以类型提升为int型,输出a对应的ascii码。最后一条判断,已经明确了i为int类型,所以根据结论三,类型提升,输出结果97。



作者: 布德鸟    时间: 2016-5-5 17:07
涨姿势了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2