50-C++遞增遞減運算符

  C++中有多個常被用在循環中的運算符,因此我們花一點時間來討論它們。前面已經介紹了兩個這樣的運算符:遞增運算符(++)(名稱C++由此得到)和遞減運算符(--)。這兩個運算符執行兩種及其常見的循環操作:將循環計數加1或減1。然而,它們還有很多特點不爲讀者所知。這兩個運算符都有兩種變體。前綴版本位於操作數前面,如++x;後綴版本位於操作數後面,如x--。

兩個版本對操作數的影響是一樣的,但是影響的時間不同。這就像對於錢包來說,清理草坪之前付錢和清理草坪之後付錢的最終結果是一樣的,但支付錢的時間不同。下列程序演示遞增運算符的這兩種差別。

//plus_one.cpp —— the increment
#include<iostream>
int main()
{
    using namespace std;
    int a=20;
    int b=20;
    cout<<"a = "<<a<<": b= "<<b<<endl;
    cout<<"a++ = "<<a++<<": ++b = "<<++b<<endl;
    cout<<"a = "<<a<<": b = "<<b<<endl;
    return 0;
}

下面是該程序的輸出:

粗略的將,a++意味着使用a的當前值計算表達式,然後將a的值加1;而++b的意思是先將b的值加1,然後使用新的值來計算表達式。例如,我們有下面這樣的關係:

int x=5;

int y = ++x;//y = 6,x = 6

int z= 5;

int y=z++;//y = 5,z=6

遞增和遞減運算符是處理將值加減1這種常見任務的一種簡約、方便的方法。

遞增運算符和遞減運算符都是漂亮的小型運算符,不過千萬不要失去控制,在同一條語句對同一個值遞增或遞減多次。問題在於,規則“使用後修改”和“修改後使用”可能會變得模糊不清。也就是說,下面這條語句在不同的系統上將生成不同的結果:

x=2*x++*(3- ++x);//在自己的電腦上輸出下看看哦,答案用於都是要以實踐爲基礎的呢

對這種語句,C++沒有定義正確的行爲。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章