newAge=++age1 输出为25,但newAge=age1++ 输出却为24???
这个其实很简单,别搞混了理清楚就OK了,举例:
首先 a++和++a 的定义:看个例子
A: a=5; b=++a; // 相当于a=a+1;b=a; 结果是a=6,b=6
B: a=5; b=a++; // 相当于b=a;a=a+1; 结果是a=6,b=5
a++ 先赋值,再自增+1
++a先自增+1,再赋值
这样就能理解了吧
++在前是先加1再赋值, 而++再后的时候是先把其值赋值给等号右边再 自身+1.
上面那个++看成吃饭
这个简单,打个比方,b=++a,跟b=a++,可以这么来看,等式左边b是 体重称量,右边a是你的体重
b=++a,就是说,你先吃饭,然后再去称体重,假如a刚刚开始是1的话,那么,b就是2
b=a++就是说,你先称重,再去吃饭,a刚刚开始是1的话,那b也是1,
但不管怎么样,运行完这句话之后,你都吃过饭了,所以,a之后就是2了。
我这么解释,你应该懂了吧,打字很累的,觉得可以就采纳了吧
这个是先加后加的问 如果++在后面,则先给左边的赋值,再自行+1,如果++在前面,则先自增1,再用自增后的给左边赋值