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,即0000 1100 |
| | 如果在任何一个操作数中存在二进制或运算符,它都会复制一位。(A | B)将给出61,即0011 1101 |
^ | 如果在一个操作数中但不是在两个操作数中都将其置位,则二进制XOR运算符将复制该位。(A ^ B)将给出49,即0011 0001 |
〜 | 二进制补码运算符是一元的,并且具有“翻转”位的作用。(〜A)将给出-61,即1100 0011,为2的补码形式,这是因为有符号的二进制数。 |
<< | 二进制左移运算符。左操作数的值向左移动右操作数指定的位数。<< 2将得到240,即1111 0000 |
>> | 二进制右移运算符。左操作数的值向右移动右操作数指定的位数.A >> 2将得到15,即0000 1111 |
运算符 | 描述 |
= | 简单赋值运算符,将值从右侧操作数分配到左侧操作数.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。 |