请问为什么
char ch = 'A';
ch += 32;
System.out.println(ch);
能输出结果是a;
而ch = ch+32;
却会报错
请问为什么
char ch = 'A';
ch += 32;
System.out.println(ch);
能输出结果是a;
而ch = ch+32;
却会报错
ch += 32 :+= 是java语言规定的运算符,java编译器会对他进行特殊处理,进行了隐式转换,所以可以正确编译。
ch = ch+32: 运算时会自动提升表达式的类型 结果会是int 在赋予char 所以需要强制转化,也即是ch = (char)(ch+ 32);
一个简单的记忆方法:
char 两个字节,
int 四个字节,
两者相加取大者。
所以(ch+32) 这个表达式的类型是 int 类型,
而你的 ch 是char 类型,把大的数据类型赋值给较小的要强制转换。