C++中有许多类型的运算符。这些可以大致分为:算术,关系,逻辑,按位,赋值和其他运算符。
算术运算符
假设变量A持有10,变量B持有20,则-
运算符
| 描述
| +
| 加两个操作数。A+B会给30
|
--
| 从第一个减去第二个操作数。A-B会给-10
|
*
| 将两个操作数相乘。A*B会给200
|
/
| 将分子除以除分子。B/A会给2
|
%
| 模运算符和整数除法后的余数。B%A将给0
|
++
| 增量运算符,将整数值加1。A++会给11
|
-
| 减量运算符,将整数值减一。A--会给9
|
关系运算符
假设变量A持有10,变量B持有20,则-
运算符
| 描述
| ==
| 检查两个操作数的值是否相等,如果是,则条件为真。(A==B)不正确。
|
!=
| 检查两个操作数的值是否相等,如果值不相等则条件为真(A!=B)为真。
|
>
| 检查左操作数的值是否大于右操作数的值,如果是,则条件成立。(A>B)不成立。
|
<
| 检查左操作数的值是否小于右操作数的值,如果是,则条件为true。(A<B)为true。
|
>=
| 检查左操作数的值是否大于或等于右操作数的值,如果是,则条件为真。(A>=B)不为真。
|
<=
| 检查左操作数的值是否小于或等于右操作数的值,如果是,则条件为真。(A<=B)为真。
|
逻辑运算符
假设变量A保持1,变量B保持0,则-
运算符
| 描述
| &&
| 称为逻辑AND运算符。如果两个操作数都不为零,则条件为true。(A&&B)为false。
|
||
| 称为逻辑或运算符。如果两个操作数中的任何一个都不为零,则条件变为true。(A||B)为true。
|
!
| 称为逻辑非运算符。用于反转其操作数的逻辑状态。如果条件为真,则逻辑非运算符将为false。!(A&&B)为真。
|
按位运算符
按位运算符对位进行运算并执行逐位操作。&,|和^的真值表如下。
pqp & qp | qp ^ q
00000
01011
11110
10011
假设A=60;和B=13;现在为二进制格式,它们将如下所示-
A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~A = 1100 0011
运算符
| 描述
| 和
| 如果两个操作数中都存在二进制AND运算符,则会将一个位复制到结果中。(A和B)将得出12,即00001100
|
|
| 如果在任何一个操作数中存在二进制或运算符,它都会复制一位。(A|B)将给出61,即00111101
|
^
| 如果在一个操作数中但不是在两个操作数中都将其置位,则二进制XOR运算符将复制该位。(A^B)将给出49,即00110001
|
〜
| 二进制补码运算符是一元的,并且具有“翻转”位的作用。(〜A)将给出-61,即11000011,为2的补码形式,这是因为有符号的二进制数。
|
<<
| 二进制左移运算符。左操作数的值向左移动右操作数指定的位数。<<2将得到240,即11110000
|
>>
| 二进制右移运算符。左操作数的值向右移动右操作数指定的位数.A>>2将得到15,即00001111
|
赋值运算符
运算符
| 描述
| =
| 简单赋值运算符,将值从右侧操作数分配到左侧操作数.C=A+B将A+B的值分配给C
|
+=
| 添加AND赋值运算符,它将右操作数添加到左操作数并将结果分配给左操作数C+=A等效于C=C+A
|
-=
| 减去AND赋值运算符,它从左边的操作数减去右边的操作数并将结果赋给左边的操作数C-=A等于C=C-A
|
*=
| 与AND赋值运算符相乘,将右操作数与左操作数相乘并将结果分配给左操作数C*=A等于C=C*A
|
/=
| 除法AND赋值运算符,它将左操作数除以右操作数并将结果赋给左操作数C/=A等效于C=C/A
|
%=
| 模AND赋值运算符,它使用两个操作数取模并将结果赋给左操作数C%=A等于C=C%A
|
<<=
| 左移AND赋值运算符.C<<=2与C=C<<2相同
|
>>=
| 右移AND赋值运算符C>>=2与C=C>>2相同
|
&=
| 按位与赋值运算符C&=2与C=C&2相同
|
^=
| 按位异或和赋值运算符.C^=2与C=C^2相同
|
|=
| C|=2与C=C|相同2
|
杂项运算符
序号
| 运算符
| 1 | sizeof运算符返回变量的大小。例如,sizeof(a),其中“a”是整数,将返回4。
|
2 | 条件运算符(?:) 如果Condition为true,则返回X的值,否则返回Y的值。
|
3 | 逗号运算符导致要执行的一系列操作。整个逗号表达式的值是逗号分隔列表的最后一个表达式的值。
|
4 | (点)和→(箭头)成员运算符用于引用类,结构和联合的单个成员。
|
5 | ()-强制转换运算符将一种数据类型转换为另一种数据类型。例如,int(2.2000)将返回2。
|
6 | 指针运算符&返回变量的地址。例如&a;将给出变量的实际地址。
|
7 | 指针运算符*是指向变量的指针。例如*var;将指针指向变量var。
|