标题增量和减量运算符:C++和--

++ unary-expression
–– unary-expression

备注

标题递增运算符 (++) 添加到其操作数;此递增值为该表达式的结果。 该操作数必须是左值不的类型 const。 结果为类型的左值和该操作数具有相同。

标题减量运算符 (--) 类似于 title 增量运算符,除此之外,该操作数递减一个单位,结果是此递减的值。

当前缀运算符会应用于函数参数时,参数的值不能保证递增或递减,在被传递给函数的前面。 有关在 C++ 标准的第 1.9.17 部分有关更多信息。

标题和后缀增量和减量运算符影响其操作数。 它们之间的主要差异是递增或递减在表达式的计算结果。 (有关更多信息,请参见 后缀增量和减量运算符。)在标题窗体中,递增或递减发生,该值在表达式计算之前,因此,该表达式的值与该操作数不同的值。 以后缀形式,递增或递减发生,该值在表达式计算后,因此,该表达式的值会与该操作数的值。 例如,下面的过程打印 “++i = 6”:

// expre_Increment_and_Decrement_Operators.cpp
// compile with: /EHsc
#include <iostream>

using namespace std;

int main() {
   int i = 5;
   cout << "++i = " << ++i << endl;
}

整型或浮动类型的操作数被整数值 1. 递增或递减。 该结果的类型与操作数类型。 指针类型的操作数是由该解决对象的大小递增或递减。 一对该指针指向下对象;一个递减的指针指向以前的对象。

由于增量和减量运算符具有副作用,用于递增或递减运算符的表达式 预处理器宏 的能有意外的结果。 请看以下示例:

// expre_Increment_and_Decrement_Operators2.cpp
#define max(a,b) ((a)<(b))?(b):(a)

int main()
{
   int i = 0, j = 0, k;
   k = max( ++i, j );
}

宏展开为:

k = ((++i)<(j))?(j):(++i);

如果 i 比 j 大于或等于 j 或小于由 1,它两次将增加。

备注

C++ 内联函数在大多数情况下是更可取。宏,因为它们消除副作用 (如中的描述在这里,并允许该语言执行更完整的类型检查。

请参见

参考

使用一元运算符的表达式

C++运算符

运算符优先级和结合性

概念

标题增量和减量运算符