大一刚考完java 对某些选择题有点迷
问题描述:
char a =' a'-1; 以为错 做题就选了它 ,结果考完试拿手机编译一下是对 ,有大佬能告诉我吗,
答
'a'是char类型,1是int类型,char可以提升为int类型,所以'a'-1会转换成96-1,结果就是95,96是字符'a'的ASCII码值。
这个选项逻辑是对的,但是在编译器中的时候会有警告,完整的写法是:
char a = (char)('a'-1); //用(char)做一下类型转换
答
'a'可以看做字母a对应的ascii码,'a'-1 =96,也在ascii码范围内,所以是合法赋值
答
应该和ASCII值有关