[小雨学编程之C#] 表达式(续)自增、自减运算符

之前我们知道了加、减、乘、除和取余数5个算数表达式 , 它的特点是:一个运算符和运算符两边两个操作数 。
和=、+=、-=、*=、/=、%=六个赋值运算表达式 , 它的特点是:将运算符右边的操作数累计运算 。
接下来介绍一个比较特殊的表达式:

[小雨学编程之C#] 表达式(续)自增、自减运算符
文章图片
我们看到一种有趣的代码写法a++ , 从程序运行结果来看 , 这样的写法的效果是 , 让变量a自己增加了1 。 所以这样的表达式叫做自增表达式 , 当然我们也可以推断出也有自减表达式:

[小雨学编程之C#] 表达式(续)自增、自减运算符
文章图片
从这样的表达式我们看到 , 它的特点是:让作用的操作数自动增加/减少1 , 但是我们会发现 , 如果:

[小雨学编程之C#] 表达式(续)自增、自减运算符
文章图片
将++/--符号放在操作数的前面 , 程序同样运行了 , 也会有一样的执行效果 。 可是 , 这两种方式的表达式有啥区别嘛?我们将代码简单修改:

[小雨学编程之C#] 表达式(续)自增、自减运算符
文章图片
这样的运行结果 , 让我们有些丈二和尚摸不着头脑 , 按理说虽然这里代码的区别只是运算符在操作数的前面或者后面 , 但是它整体的意思是让对应的操作数自增1呀?为什么一个显示了操作数自增了 , 一个却没显示 , 而是在之后的语句中显示了自增的效果呢?
这里我们拆解一下对应的代码 , 这里我们可以将a++和++a都理解成a=a+1 , 也就是说两者都执行了相同的动作 , 即将a+1的结果赋值给a , 最后我们得到并使用运算后的a 。
不过不同的是当++在a的前面的时候 , 意思是我们想要先执行a+1后得到的a 。
而++在a后面的时候 , 意思是我们先要a , 当本条程序执行完毕后 , 再执行a+1 。
所以就有了上述的代码执行效果:


[小雨学编程之C#] 表达式(续)自增、自减运算符
文章图片
这部分代码中 , 第一次输出的结果是先执行a+1后的结果即2 , 第二次输出的结果是a本身也是2 。
[小雨学编程之C#] 表达式(续)自增、自减运算符】在

[小雨学编程之C#] 表达式(续)自增、自减运算符
文章图片
这部分代码中 , 第一次输出的结果为b本身 , 即1 , 这句话执行完毕后自动执行b+1 , 然后第二次输出结果便是已经执行完b+1后的结果 , 即2 。
相同的理解方式也同样适用于--符号 。