一个整数类型的变量自身加 1 可以这样写:
或者
不过,C语言还支持另外一种更加简洁的写法,就是:
或者
这种写法叫做自加或自增,意思很明确,就是每次自身加 1。
相应的,也有 a--
和 --a
,它们叫做自减,表示自身减 1。
++
和--
分别称为自增运算符和自减运算符,它们在循环结构中使用很频繁。
自增和自减的示例:
自增自减完成后,会用新值替换旧值,将新值保存在当前变量中。
自增自减的结果必须得有变量来接收,所以自增自减只能针对变量,不能针对数字,例如 10++
就是错误的。
需要重点说明的是,++ 在变量前面和后面是有区别的:
++
在前面叫做前自增(例如 ++a)。前自增先进行自增运算,再进行其他操作。++
在后面叫做后自增(例如 a++)。后自增先进行其他操作,再进行自增运算。
自减(–)也一样,有前自减和后自减之分。
下面的例子能更好地说明前自增(前自减)和后自增(后自减)的区别:
a、b、c、d 的输出结果相信大家没有疑问,下面重点分析 a1、b1、c1、d1:
1.对于 a1=++a,先执行 ++a,结果为 11,再将 11 赋值给 a1,所以 a1 的最终值为11。而 a 经过自增,最终的值也为 11。
2.对于b1=b++,b 的值并不会立马加 1,而是先把 b 原来的值交给 b1,然后再加 1。b 原来的值为 20,所以 b1 的值也就为 20。而 b 经过自增,最终值为 21。
3.对于c1=--c,先执行 --c,结果为 29,再将 29 赋值给c1,所以 c1 的最终值为 29。而 c 经过自减,最终的值也为 29。
4.对于d1=d--,d 的值并不会立马减 1,而是先把 d 原来的值交给 d1,然后再减 1。d 原来的值为 40,所以 d1 的值也就为 40。而 d 经过自减,最终值为 39。
- 可以看出:
a1=++a;
会先进行自增操作,再进行赋值操作; - 而
b1=b++;
会先进行赋值操作,再进行自增操作。c1=--c;
和d1=d--;
也是如此。
为了强化记忆,我们再来看一个自增自减的综合示例:
我们来分析一下:
1.执行语句①时,因为是后自减,会先进行 a-b 运算,结果是 11,然后 b 再自减,就变成了 0;最后再将 a-b 的结果(也就是11)交给 c,所以 c 的值是 11。
2.执行语句②之前,b 的值已经变成 0。对于d=(++a)-(--b),a 会先自增,变成 13,然后 b 再自减,变成 -1,最后再计算 13-(-1) ,结果是 14,交给 d,所以 d 最终是 14。
我再给读者加一个,C++ 的程序示例:
示例一:
示例二:
不管是自增运算符,还是自减运算符,它们只能作用于可变左值,而不能表达式,如下: