因为增量和减量都是很常见的操作,所以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++; 的实现与编译器有关,原书这里的说法不是很准确。当然,这种写法肯定是要避免的。