添加'a' + 'b'它时产生195.是输出数据类型char还是int?
促销的规则是"当操作数具有不同类型时,自动二进制数字促销发生,较小的操作数类型转换为较大的".但操作数是相同类型的,例如,
byte=byte+byte // Compile time error... found int..
Run Code Online (Sandbox Code Playgroud)
那为什么会这样呢?
所以我有这个代码
char [] a = {'a','b','c'};
char c = 'a' + 'b'; //works
char c2 = 98 + 97; //works
char c3 = a[0] + a[1]; //compile time error
Run Code Online (Sandbox Code Playgroud)
所以它们都是相同的功能,但在获取和使用数组值时,它给了我一个编译时错误.这是什么原因?
The result of the additive operator applied two char operands is an int.
Run Code Online (Sandbox Code Playgroud)
那我为什么要这样做?
char c2 = (int)((int)98 + (int)97);
Run Code Online (Sandbox Code Playgroud) 为什么我不能这样做?
public class test123 {
public static void main (String [] args) {
char c = 34;
char a = c + 10;
}
}
Run Code Online (Sandbox Code Playgroud)
java新手,如果这个问题实际上很愚蠢,我很抱歉。