说明与案例
???????前++ 和 后++ 的作用都是自增1, ???????而它们的区别是: ??????????????前++ 是先自增1,再进行运算。比如int a = 1;int b = ++a;先将a自增1,再做将a的值赋值给b的运算,所以a = 2,b = 2; ??????????????后++ 是先进行运算,再自增1。比如int a = 1;int b = a++;先做将a的值赋值给b的运算,再将a自增1,所以a = 2,b = 1。 注意: ???????运算是针对a++或++a本身而言的,不是针对一条语句,所以下面这种 后++ 情况的结果就不一样了, ???????比如int a = 1;a++;int b=a;这里的b就等于2了。 ???????再举一个例子,int n = 10;n += (n++) + (++n)的结果是多少?答案是32,先转换成这个模式n = n + (n++) + (++n),也就是n = 10 + 10 +12,为啥(++n)是12?那是因为(n++)之后就变成11,紧接着又是(++n)会先自增,所以就是12了。
扩展
???????如果我们想实现加1的功能,我们有这样两种方式: ???????1)a = a + 1 ???????2)++a或a++ ???????其实这两种方式是有区别的,假设a是int类型,那么这两种方式的效果一样,但如果a是byte或short类型,第一种方式编译则会报错,因为byte型或short型的a与int型的1相加,结果需要用int来接收,所以short a = a + 1或者byte a = a + 1是不能这样写的,第二种方式则不会报错,因为++不会改变本身变量的数据类型,所以开发过程中推荐大伙用++a或a++,不要用a = a + 1。
???????前- - 和 后- - 的作用都是自减1,情形跟++是一模一样的。
|