C语言提供了两个用于变量递增与递减的特殊运算符。自增运算符++
使其操作数递增1,自减运算符使其操作数递减1。我们经常使用++
运算符递增变量的值,如下所示:
a++;
++
与--
这两个运算符特殊的地方特殊的地方主要表现在:它们既可以用作前缀运算符(用在变量前,如++a
)。也可以用作后缀运算符(用在变量后面,如a++
)。在这两种情况下,其效果都是将变量a的值加1。但是,它们之间有一点不同,表达式++a
先将a的值递增1,然后再使用变量a的值,而表达式a++
则是先使用变量a的值,然后再将n的值递增1。也就是说,对于使用变量a的值的上下文来说,++n
和n++
效果是不同的。如果a的值为5,那么
x = a++;
x的值为5,a的值为6,而
x = ++a;
x的值为6,a的值为6。
自增与自减运算符只能作用于变量,类似表达式(i+j)++是非法的。
在不需要使用任何具体值且仅需要递增变量的情况下,前缀方式和后缀方式效果相同。但是在某些情况应该酌情考虑。