public class F{
public static void main(String[] args){
int a = 1;
int b = 3;
int c = 4;
int d = c+++a;
int e = ++a+c;
System.out.println(d);
System.out.println(e);
}
}
d 的值为什么不是6,而是5啊,我认为的运算:d=c+++a,d的值先是c和a相加等于5,然后,再加1是6啊。为什么电脑是5。
public static void main(String[] args){
int a = 1;
int b = 3;
int c = 4;
int d = c+++a;
int e = ++a+c;
System.out.println(d);
System.out.println(e);
}
}
d 的值为什么不是6,而是5啊,我认为的运算:d=c+++a,d的值先是c和a相加等于5,然后,再加1是6啊。为什么电脑是5。
int a = 4;
int b = 4;
a++;
++b;
System.out.println(a);
System.out.println(b);就知道了
c+++a是先运算嘛,就是5,完后在给c赋值加上1就是5咯, 要把赋值和运算的顺序和给谁赋值理解清楚就好了
其二是 因为c++ + a中 c++只是一个与a相同类型的变量名字 由其一可以得知c++的结果相当久是4
就好比如是:
int x = c++;
int d = x + a;
这样
其实电脑在处理这样的数据时是先按照数学法则运算,之后将c++当成一个临时变量,而这个变量的值就是c++之后的值
int a = 1;
int b = 3;
int c = 4;
int d = c+++a; // d=(c++)+a ,c++还是为4,d=4+1=5. 此时,c自加1 变为5.
int e = ++a+c; // e=(++a)+c ,++a使a自加1 变为2,然后 e=2+5=7
System.out.println(d);
System.out.println(e);