C++ 速查手冊 V1.00 - 單元 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

可合用指派運算子的有算術運算子及位元運算子,以下程式示範算術運算子的部份


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 ...

沒有留言: