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;
}
编译后执行,结果如下
$ 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;
}
编译后执行,结果如下
$ g++ u0409_2.cpp
$./a.out 复制代码
724
181
128
192
0
$