public class Test {
public static void main (String arg[]){
int i1=10,i2=20;
int i= (i2++);//我的问题是在这,括号的优先级不是最高吗,难道不是先算(i2++)
System.out.print("i="+i);//然后复制给i么??主要是我觉的结果有点违背优先级
System.out.println("i2="+i2);
i = (++i2);
System.out.print("i="+i);
System.out.println("i2="+i2);
i = (--i1);
System.out.print("i="+i);
System.out.println("i2="+i1);
i = (i1--);
System.out.print("i="+i);
System.out.println("i2="+i1);
}
}先上代码 JAVA的
public static void main (String arg[]){
int i1=10,i2=20;
int i= (i2++);//我的问题是在这,括号的优先级不是最高吗,难道不是先算(i2++)
System.out.print("i="+i);//然后复制给i么??主要是我觉的结果有点违背优先级
System.out.println("i2="+i2);
i = (++i2);
System.out.print("i="+i);
System.out.println("i2="+i2);
i = (--i1);
System.out.print("i="+i);
System.out.println("i2="+i1);
i = (i1--);
System.out.print("i="+i);
System.out.println("i2="+i1);
}
}先上代码 JAVA的
a+a 加法
b=a+a 赋值
a=a+1
a=a+1 a连续两次执行自增
和你想要的,a自增1,然后求和,完全不同的结果了都。
在ISO-C99 的表达式小节有讲解。
这里int i= (i2++); 加与不加括号是不影响的,都是一样,不加括号也是先运行i2++