学习记录 彻底搞清 C#中a++与++a的区别

首先 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
所以书上有:
(1) 如果用前缀运算符对一个变量增1(减1),则在将该变量增1(减1)后,用新值在表达式中进行其他的运算。
(2) 如果用后缀运算符对一个变量增1(减1),则用该变量的原值在表达式中进行其他的运算后,再将该变量增1(减1)后。


举个列子:求a的最终值
int a=3;
a+=a+=a++*a--;
计算过程如下:
先算a++*a--
由于a=3
a++等于3 //这里后缀++中的第二步自加运算还没有进行
a--等于3 //这里后缀--中的第二步自减运算还没有进行
所以 ++*a-- 等于9
a+=a++*a-- 等于a+=9等于a=a+9=3+9=12
在算a+=a 等于a=a+12=12+12=24
然后在进行再后缀++中的第二步自加运算和后缀--中的第二步自减运算
即进行 a=a+1;此时a=25;再进行a=a-1;此时a=24 所以最终a=24

原文地址:https://www.cnblogs.com/zhoudi/p/5310403.html