1、b=++b;会有The assignment to variable b has no effect这样的警告(注意只是警告不是报错),意思是该赋值不会影响b;++b的作用本来就是b的值+1后再赋值给自己,++b就相当于b=b+1;b=++b完全可以写成++b;赋值两次是多此一举,所以编译器会警告你赋值不会影响b的最终值;
2、b=b++;跟上边不一样,按道理说这句代码会先把b的值赋值给b,再自增,但是请注意:这里是先把b的值取出来后放在了临时的内存,然后再等待b自增后再把临时存的那个值赋值给b;http://bbs.itheima.com/thread-188910-1-1.html这里有这句代码详细的解释;
总结:上边两句代码最终b的值不一样,b=b++影响了b的值,所以编译器不会弹出警告;b=++b效果等同于b++,相当于重复赋值,所以编译器认为这是多余的操作,弹出警告,不是报错。