c++之自增自减之课本疑惑

img


看不懂为什么c=5
a++明明是先把表达式的值确定下来,再进行a=a+1的
为什么c不是=3?

这个可能是你理解错了,课本可能也有些歧义,他是一个顺序,在进行int c=a++时,已经执行了int b=++a,所以:
1.a=3;
2.int b=++a;此时a=4.
3.int c=a++;先将a的值(4)赋给c,此时c=4,然后a进行自增,然后a=5了。

++a是先将自身值加 1再参与运算,而a++是先参与运算后再将自身值加 1。

c=a++ 是先赋值了c=a,后面a才自增的。注释的解释非常清楚。

如果是加加在前面,则先算加加,如果加加在后面则此句执行完后再算加加。

比如:b=++a;相当于++a;b=a;而b=a++;相当于b=a;a++