在程式中對變數遞增 1 或遞減 1 是很常見的運算,例如:
int i = 0;
i = i + 1;
cout << i << endl;
i = i - 1;
cout << i << endl;
這段程式會分別顯示出 1 與 0 兩個數,您也可以這麼寫這個程式:
int i = 0;
cout << ++i << endl;
cout << --i << endl;
其中寫在變數 i 之前的 ++ 與 -- 就是遞增運算子(Increment operator)與遞減運算子(Decrement operator),當它們撰寫在變數之前時,其作用就相當於將變數遞增 1 與遞減 1:
++i; // i = i + 1;
--i; // i = i - 1;
可以將遞增或遞減運算子撰寫在變數前或後,但兩者有差別,將遞增(遞減)運算子撰寫在變數前時,表示先將變數的值加(減)1,然後再傳 回變數的值,將遞增(遞減)運算子撰寫在變數之後,表示先傳回變數值,然後再對變數加(減)1,例如:
int i = 0;
int num = 0;
num = ++i; // 相當於i = i + 1; num = i;
cout << num << endl;
num = --i; // 相當於i = i - 1; num = i;
cout << num << endl;
在這段程式中,num 的值會前後分別顯示為 1 與 0,再看看下面這段:
int i = 0;
int num = 0;
num = i++; // 相當於num = i; i = i + 1;
cout << num << endl;
num = i--; // 相當於 num = i; i = i - 1;
cout << num << endl;
在這段程式中,num 的值會顯示前後分別為 0 與 1。
接下來看指定運算子(Assignment operator),到目前為止我們只看過一個指定運算子,也就是 = 這個運算子,事實上指定運算子還有以下的幾個:
+=:a += b就是a = a + b-=:a -= b就是a = a - b*=:a *= b就是a = a * b/=:a /= b就是a = a / b%=:a %= b就是a = a % b&=:a &= b就是a = a & b|=:a |= b就是a = a | b^=:a ^= b就是a = a ^ b<<=:a <<= b就是a = a << b>>=:a >>= b就是a = a >> b

