C++ 增量與減量操作符

2023-03-20 15:55 更新

因?yàn)樵隽亢蜏p量都是很常見的操作,所以C++為它們提供了專用操作符。++操作符的功能是將當(dāng)前變量增加1,它支持int、char和double類型,而--操作符將當(dāng)前變量減少1。這兩個(gè)操作符都不能應(yīng)用于apstring類型,也不能應(yīng)用于bool類型。

從技術(shù)角度講,增加一個(gè)變量的同時(shí)將它作為一個(gè)表達(dá)式是合法的。例如,你可能會(huì)看到這樣的寫法:

cout << i++ << endl;

看這個(gè)例子,增量發(fā)生在輸出之前或者之后并不清楚。因?yàn)檫@種表達(dá)式令人困惑,所以不建議讀者使用。 實(shí)際上,為了進(jìn)一步阻止你使用它,我不會(huì)告訴你該語(yǔ)句的答案。如果想知道,請(qǐng)自行嘗試。

我們可以使用增量操作符重寫字符計(jì)數(shù)程序:

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

下面是一個(gè)常見錯(cuò)誤:

index = index++; // 錯(cuò)誤?。?/code>

很不幸,這在語(yǔ)法上是正確的,編譯器不會(huì)給出警告。這個(gè)語(yǔ)句會(huì)導(dǎo)致index的值沒被改變【譯者注1】。這是個(gè)難以定位的bug。

記住,你可以寫index = index +1;,也可以寫index++;,但是不能將他們混到一起。

譯者注1: index = index++; 的實(shí)現(xiàn)與編譯器有關(guān),原書這里的說法不是很準(zhǔn)確。當(dāng)然,這種寫法肯定是要避免的。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)