7.10 增量与减量操作符

优质
小牛编辑
134浏览
2023-12-01

因为增量和减量都是很常见的操作,所以C++为它们提供了专用操作符。++操作符的功能是将当前变量增加1,它支持int、char和double类型,而--操作符将当前变量减少1。这两个操作符都不能应用于apstring类型,也不能应用于bool类型。

从技术角度讲,增加一个变量的同时将它作为一个表达式是合法的。例如,你可能会看到这样的写法:

cout << i++ << endl;

看这个例子,增量发生在输出之前或者之后并不清楚。因为这种表达式令人困惑,所以不建议读者使用。 实际上,为了进一步阻止你使用它,我不会告诉你该语句的答案。如果想知道,请自行尝试。

我们可以使用增量操作符重写字符计数程序:

int index = 0;
while (index < length) {
  if (fruit[index] == ’a’) {
    count++;
  }
  index++;
}

下面是一个常见错误:

index = index++; // 错误!!

很不幸,这在语法上是正确的,编译器不会给出警告。这个语句会导致index的值没被改变【译者注1】。这是个难以定位的bug。

记住,你可以写index = index +1;,也可以写index++;,但是不能将他们混到一起。

译者注1: index = index++; 的实现与编译器有关,原书这里的说法不是很准确。当然,这种写法肯定是要避免的。