我们都知道代码:
int a=3,b;
b=a++;
打印结果为a =4,b=3;
如果上面写为:
int a=3,b;
b=(a++);
打印结果为何 b 也是3那?
延伸一下:
int i=0;
while((i++)<10)
{
System.out.println("i="+i);
}
System.out.println("i="+i);
i 又是如何打印,i的最终值又是多少那?
以上还请大神帮忙解释一下由来,十分感谢!!
------解决思路----------------------
1、这与运算符的顺序没有关系,你了解一下a++与 ++a的区别你就知道了
2、
while((i++)<10)
{
;
}
相当于
while(i<10)
{
i++;
}
------解决思路----------------------
改成++a,不就可以了,i++与++i,最基础的了,一个先赋值后加,一个先加后赋值
------解决思路----------------------
虽然加了(),但是如果++在后面的话,他还是先参加运算,后复制的。
你的while循环输出的应该是0——9吧
------解决思路----------------------

的确是先进行的a++,而且a已经是4了,只不过提前把a自增一之前的3暂存在栈中,后面store到slot2(即局部变量b的存储单元),后面输出的b也是slot2中3
------解决思路----------------------
因为你加了()还是先运行a++,而a++在这个表达式里面本来就是先运行的,你加不加括号其实是一样的