System.out.println(false?a:x); 表达式1是int类型的变量,表达式2是char类型的变量,没有常量表达式。因此要进行类型提升,把char类型提升为int类型,整个条件运算符结果的类型就是int类型。所以输出结果就是97。作者: cro 时间: 2012-6-6 20:16
这个是隐式转换问题,隐式转换肯定要朝大类型或是精度高的转换,int占的字节大于char,两个又在同一条语句里面,肯定要朝int转换啊!
同理,如果改成
int x = 1;
short b = 2;
System.out.println(true ? b : x);
这个打印出来的肯定是int类型!你可以测试一下…