这两天调程序的时候,发现了个问题:
char[] char1 = {'a','b','c','d','e','g','h','i','j','k'};
运行System.out.println(char1['3'-'0']);没有问题
但是System.out.println(char1['3']);不行,显示存储了非法数值
前面的这句好理解,是程序运行表达式后默认进行了数据类型转换了,运行
System.out.println(char1[(int)('3'-'0')]);
都没问题也验证了这点,
但是,运行以下这几句也没问题,正常显示结果,就让俺搞不明白了
System.out.println(char1[('3'-'0')]);
System.out.println(char1[(char)('3'-'0')]);
System.out.println(char1[(char)(3)]); |