C++ 速查手冊
4.2 - 遞增、遞減運算
遞增 (increment) 及遞減 (decrement) 為單元運算子 (unary operator) ,也就是說只需要一個運算元即構成運算式,但在運算元有前後的差別
運算子 | 功能 | 範例 |
---|---|---|
++ | 前遞增 | ++a |
++ | 後遞增 | a++ |
-- | 前遞減 | --a |
-- | 後遞減 | a-- |
前遞增是先進行遞增,例如
a = 3;
b = 5;
c = a + ++b; // c = 3 + 6
// a = 3, b = 6
變數 b 先遞增,然後才會與變數 a 相加。後遞增則相反,運算式完成後才會做遞增的動作,例如
a = 3;
b = 5;
c = a + b++; // c = 3 + 5
// a = 3, b = 6
同樣的,遞減的前、後之別與遞增雷同,前遞減會在運算式之前遞減,後遞減則是在運算式完成後才遞減。
以下是整數型態做遞增運算的例子
#include <iostream>
int main() {
int a = 1;
std::cout << a++ << std::endl;
std::cout << ++a << std::endl;
std::cout << a++ << std::endl;
std::cout << a << std::endl;
return 0;
}
/* 《程式語言教學誌》的範例程式
http://kaiching.org/
檔名:u0402_1.cpp
功能:示範 C++ 的遞增運算
作者:張凱慶*/
編譯後執行,結果如下
$ g++ u0402_1.cpp |
$ ./a.out |
1 |
3 |
3 |
4 |
$ |
以下為整數型態做遞減運算的例子
#include <iostream>
int main() {
int a = 1;
std::cout << a-- << std::endl;
std::cout << --a << std::endl;
std::cout << a-- << std::endl;
std::cout << a << std::endl;
return 0;
}
/* 《程式語言教學誌》的範例程式
http://kaiching.org/
檔名:u0402_2.cpp
功能:示範 C++ 的遞減運算
作者:張凱慶*/
編譯後執行,結果如下
$ g++ u0402_2.cpp |
$ ./a.out |
1 |
-1 |
-1 |
-2 |
$ |
以下為浮點數型態做遞增運算的例子
#include <iostream>
int main() {
double a = 1.2;
std::cout << a++ << std::endl;
std::cout << ++a << std::endl;
std::cout << a++ << std::endl;
std::cout << a << std::endl;
return 0;
}
/* 《程式語言教學誌》的範例程式
http://kaiching.org/
檔名:u0402_3.cpp
功能:示範 C++ 的遞增運算
作者:張凱慶*/
編譯後執行,結果如下
g++ u0402_3.cpp |
$ ./a.out |
1.2 |
3.2 |
3.2 |
4.2 |
$ |
以下為浮點數型態做遞減運算的例子
#include <iostream>
int main() {
double a = 1.2;
std::cout << a-- << std::endl;
std::cout << --a << std::endl;
std::cout << a-- << std::endl;
std::cout << a << std::endl;
return 0;
}
/* 《程式語言教學誌》的範例程式
http://kaiching.org/
檔名:u0402_4.cpp
功能:示範 C++ 的遞減運算
作者:張凱慶*/
編譯後執行,結果如下
$ g++ u0402_4.cpp |
$ ./a.out |
1.2 |
-0.8 |
-0.8 |
-1.8 |
$ |
字元型態也可以做遞增及遞減運算,例如我們可依此特性印出 26 個英文小寫字母
#include <iostream>
int main() {
char var = 'a';
while (var <= 'z') {
std::cout << var++;
}
std::cout << std::endl;
var -= 1;
while (var >= 'a') {
std::cout << var--;
}
std::cout << std::endl;
return 0;
}
/* 《程式語言教學誌》的範例程式
http://kaiching.org/
檔名:u0402_5.cpp
功能:示範 C++ 的遞增遞減運算
作者:張凱慶*/
編譯後執行,結果如下
$ g++ u0402_5.cpp |
$ ./a.out |
abcdefghijklmnopqrstuvwxyz |
zyxwvutsrqponmlkjihgfedcba |
$ |
相關教學影片