自增和自减表达式
语法
| 形式 | 语法 |
|---|---|
| 1 | ++ 左值表达式 |
| 2 | -- 左值表达式 |
| 3 | 左值表达式 ++ |
| 4 | 左值表达式 -- |
描述
自增和自减表达式用于简化对变量进行加一或减一的操作。
无论是对于形式1 和 形式2 的前序自增/自减表达式,还是形式3 和 形式4 的后序自增/自减表达式,
其被操作数的左值表达式类型都应当是 int 或 float 类型。
对于前序运算,表达式的结果为自增或自减之后的值;对于后序运算,表达式的结果为自增或自 减之前的值。
需要注意,自增或自减表达式能够改变其操作数的值,因此,如果对同一个变量的自增和自减运算出现在同一条表达式中,并且 表达式没有明确的求值顺序(参见 表达式求值顺序),可能得到意外的结果:
int a = 1;
int b = a++ + ++a; // 不应当期待 b 的值,避免这种写法
示例
int a = 1;
writeln(a++); // 输出 1,a 的值变为 2
writeln(++a); // 输出 3,a 的值变为 3
writeln(a--); // 输出 3,a 的值变为 2
writeln(--a); // 输出 1,a 的值变为 1
float b = 1.5;
writeln(b++); // 输出 1.5,b 的值变为 2.5
writeln(++b); // 输出 3.5,b 的值变为 3.5
writeln(b--); // 输出 3.5,b 的值变为 2.5
writeln(--b); // 输出 1.5,b 的值变为 1.5