
C++ 最基本的指派運算子 (assignment operator) 為單一個等號 = ,這是用來將等號右邊的值拷貝給給左邊的變數資料。等號也可以跟其他運算子合用,會直接將結果儲存到原變數之中,如
| 運算子 | 功能 | 範例 |
|---|---|---|
| = | 指派 | a = b |
| += | 相加同時指派 | a += b |
| -= | 相減同時指派 | a -= b |
| /= | 相除同時指派 | a /= b |
| %= | 取餘數同時指派 | a %= b |
| &= | 位元且同時指派 | a &= b |
| ^= | 位元互斥或同時指派 | a ^= b |
| |= | 位元或同時指派 | a |= b |
| <<= | 位元向左位移同時指派 | a <<= b |
| >>= | 位元向右位移同時指派 | a >>= b |
可合用指派運算子的有算術運算子及位元運算子,以下程式示範算術運算子的部份
| 001 | #include <iostream> |
| 002 | |
| 003 | int main() { |
| 004 | int a = 4; |
| 005 | int b = 3; |
| 006 | |
| 007 | std::cout << (a += b) |
| 008 | << std::endl; |
| 009 | std::cout << (a -= b) |
| 010 | << std::endl; |
| 011 | std::cout << (a *= b) |
| 012 | << std::endl; |
| 013 | std::cout << (a /= b) |
| 014 | << std::endl; |
| 015 | std::cout << (a %= b) |
| 016 | << std::endl; |
| 017 | |
| 018 | return 0; |
| 019 | } |
| 020 | |
| 021 | /* Kaiching Chang |
| 022 | u0409_1.cpp |
| 023 | 2014-02 */ |
編譯後執行,結果如下
| $ g++ u0409_1.cpp |
| $ ./a.out |
| 7 |
| 4 |
| 12 |
| 4 |
| 1 |
| $ |
第 7 行
| 007 | std::cout << (a += b) |
變數 a 加上變數 b 的值後,結果存進 a 之中,其值為 7 。然後第 9 行
| 009 | std::cout << (a -= b) |
變數 a 減掉變數 b 的值後,結果變數 a 的值為 4 。餘下可類推。
以下程式示範位元運算子的部份
| 001 | #include <iostream> |
| 002 | |
| 003 | int main() { |
| 004 | int a = 181; |
| 005 | int b = 192; |
| 006 | |
| 007 | std::cout << (a <<= 2) |
| 008 | << std::endl; |
| 009 | std::cout << (a >>= 2) |
| 010 | << std::endl; |
| 011 | std::cout << (a &= b) |
| 012 | << std::endl; |
| 013 | std::cout << (a |= b) |
| 014 | << std::endl; |
| 015 | std::cout << (a ^= b) |
| 016 | << std::endl; |
| 017 | |
| 018 | return 0; |
| 019 | } |
| 020 | |
| 021 | /* Kaiching Chang |
| 022 | u0409_1.cpp |
| 023 | 2014-02 */ |
編譯後執行,結果如下
| $ g++ u0409_2.cpp |
| $ ./a.out |
| 724 |
| 181 |
| 128 |
| 192 |
| 0 |
| $ |
continue ...
沒有留言:
張貼留言