
C++ 速查手冊
4.9 - 指派運算
C++ 最基本的指派運算子 (assignment operator) 為單一個等號 = ,這是用來將等號右邊的值拷貝給給左邊的變數資料。等號也可以跟其他運算子合用,會直接將結果儲存到原變數之中,如
| 運算子 | 功能 | 範例 | 
|---|---|---|
| = | 指派 | a = b | 
| += | 相加同時指派 | a += b | 
| -= | 相減同時指派 | a -= b | 
| /= | 相除同時指派 | a /= b | 
| %= | 取餘數同時指派 | a %= b | 
| &= | 位元且同時指派 | a &= b | 
| ^= | 位元互斥或同時指派 | a ^= b | 
| |= | 位元或同時指派 | a |= b | 
| <<= | 位元向左位移同時指派 | a <<= b | 
| >>= | 位元向右位移同時指派 | a >>= b | 
可合用指派運算子的有算術運算子及位元運算子,以下程式示範算術運算子的部份
#include <iostream>
  
int main() {
    int a = 4;
    int b = 3;
    
    std::cout << (a += b) << std::endl;
    std::cout << (a -= b) << std::endl;
    std::cout << (a *= b) << std::endl;
    std::cout << (a /= b) << std::endl;
    std::cout << (a %= b) << std::endl;
    
    return 0;
}
/* 《程式語言教學誌》的範例程式
   http://kaiching.org/
   檔名:u0409_1.cpp
   功能:示範 C++ 的指派運算
   作者:張凱慶*/編譯後執行,結果如下
| $ g++ u0409_1.cpp | 
| $ ./a.out | 
| 7 | 
| 4 | 
| 12 | 
| 4 | 
| 1 | 
| $ | 
第 7 行
std::cout << (a += b) << std::endl;變數 a 加上變數 b 的值後,結果存進 a 之中,其值為 7 。然後第 8 行
std::cout << (a -= b) << std::endl;變數 a 減掉變數 b 的值後,結果變數 a 的值為 4 。餘下可類推。
以下程式示範位元運算子的部份
#include <iostream>
  
int main() {
    int a = 181;
    int b = 192;
    
    std::cout << (a <<= 2) << std::endl;
    std::cout << (a >>= 2) << std::endl;
    std::cout << (a &= b) << std::endl;
    std::cout << (a |= b) << std::endl;
    std::cout << (a ^= b) << std::endl;
    
    return 0;
}
/* 《程式語言教學誌》的範例程式
   http://kaiching.org/
   檔名:u0409_2.cpp
   功能:示範 C++ 的指派運算
   作者:張凱慶*/編譯後執行,結果如下
| $ g++ u0409_2.cpp | 
| $ ./a.out | 
| 724 | 
| 181 | 
| 128 | 
| 192 | 
| 0 | 
| $ | 
