public static void main(String[] args) {
int h = 3;
// int temp = h++;
// System.out.println("temp = " + temp);
h = h++;
System.out.println("h = " + h);
h = ++h;
System.out.println("h = " + h);
}
打印结果是:
h = 3
h = 4
刚回答个一样的问题,我就直接复制过来了说下。
int h = 3;
h = h++;
System.out.println("h = " + h);
你可以想成h++这个运算式会有两个结果,一个是运算式本身的值,一个是对h的自加效果;
当它们运行时,遵循以下顺序:
首先,h++运算式产生运算值,为3;
然后,对h产生自加效果,这时h为4;
最后,h=这个赋值语句将h++运算式产生的运算值赋值给h,这时h又变为3。
后++后执行,如int temp = h++; 会先执行temp = h的赋值操作,再执行h=h+1
前++先执行,如h = ++h; 会先执行h=h+1,再执行h = h的赋值操作
运算方法不同,前++是先执行自加再赋值,后++是先赋值后执行自加
这是运算顺序决定的,如果++在后面,则会先执行赋值操作,这时后面的++已经不会对前面的h产生影响了,所以h=3,而++在前面,就会先进行
自增的操作,然后赋值,所以h=4,不知道这样讲楼主明不明白
h++ 先运算后赋值
++h先赋值后运算