运算符是一个符号,它告诉编译器执行特定的数学或逻辑函数。 C语言具有丰富的内置运算符,并提供以下类型的运算符:
Arithmetic Operators 算术运算符
Comparison Operators 比较运算符
Boolean Operators 布尔运算符
Bitwise Operators 按位运算符
Compound Operators 复合运算符
算术运算符
假设变量A保持10,变量B保持20,则 -
| 运算符名称 | 简单的运算符 | 描述 | 例子 |
|---|---|---|---|
| assignment operator | = | 将值存储在等号左边的变量中的等号右边。 | A = B |
| addition | + | 添加两个操作数 | A + B will give 30 |
| subtraction | - | 从第一个操作数中减去第二个操作数 | A - B will give -10 |
| multiplication | * | 将两个操作数相乘 | A * B will give 200 |
| division | / | 用分母除分子 | B / A will give 2 |
| modulo | % | 模数运算符和整数除法后的余数 | B % A will give 0 |
比较运算符
假设变量A保持10,变量B保持20,则 -
| 运算符名称 | 简单的运算符 | 描述 | 例子 |
|---|---|---|---|
| 等于 | == | 检查两个操作数的值是否相等,如果是,则条件为真。 | (A == B)不是真的 |
| 不等于 | != | 检查两个操作数的值是否相等,如果值不相等,则条件为真。 | (A!= B)为真 |
| 少于 | < | 检查左操作数的值是否小于右操作数的值,如果是,则条件变为真。 | (A |
| 大于 | > | 检查左操作数的值是否大于右操作数的值,如果是,则条件为真。 | (A> B)不成立 |
| 小于或等于 | <= | 检查左操作数的值是否小于或等于右操作数的值,如果是,则条件为真。 | (A |
| 大于或等于 | >= | 检查左操作数的值是否大于或等于右操作数的值,如果是,则条件为真。 | (A> = B)不为真 |
布尔运算符
假设变量A保持10,变量B保持20,则 -
| 运算符名称 | 简单的运算符 | 描述 | 例子 |
|---|---|---|---|
| and | && | 称为逻辑AND运算符。 如果两个操作数都是非零,那么条件变为真。 | (A&amp; B)为真 |
| or | || | 称为逻辑OR运算符。 如果两个操作数中的任何一个非零,则条件变为真。 | (A || B)为真 |
| not | ! | 称为逻辑非运算符。 用于反转其操作数的逻辑状态。 如果条件为真,则逻辑非运算符将为假。 | !(A&amp;&amp; B)为假 |
按位运算符
假设变量A保持10,变量B保持20,则 -
| 运算符名称 | 简单的运算符 | 描述 | 例子 |
|---|---|---|---|
| and | & | 如果两个操作数中都存在二进制AND运算符,则它将向结果中复制一位。 | (A&amp; B)将给出12,即0000 1100 |
| or | | | 二进制OR运算符复制一个位,如果它存在于任一操作数 | (A | B)将给出61,即0011 1101 |
| xor | ^ | 二进制XOR运算符复制该位,如果它在一个操作数中设置,但不是两个操作数。 | (A ^ B)将给出为0011 0001的49 |
| not | ~ | 二进制补码运算符是一元的,具有“翻转"位的效果。 | (〜A)将给出-60,其为1100 0011 |
| shift left | << | 二进制左移位运算符。 左操作数值向左移动由右操作数指定的位数。 | A<< 2将给出240,即1111 0000 |
| shift right | >> | 二进制右移运算符。 左操作数值向右移动由右操作数指定的位数。 | A>> 2将给出15,即0000 1111 |
复合运算符
假设变量A保持10,变量B保持20,则 -
| 运算符名称 | 简单的运算符 | 描述 | 例子 |
|---|---|---|---|
| increment | ++ | 增量运算符,将整数值增加1 | A++ 会给11 |
| decrement | -- | 递减运算符,将整数值减1 | A--会给9 |
| compound addition | += | 添加AND赋值运算符。 它向左操作数添加右操作数,并将结果分配给左操作数 | B += A 等效于 B = B+ A |
| compound subtraction | -= | 减去AND赋值运算符。 它从左操作数中减去右操作数,并将结果赋给左操作数 | B - = A等效于B = B-A |
| compound multiplication | *= | 乘法AND赋值运算符。 它将右操作数与左操作数相乘,并将结果分配给左操作数 | B * = A等价于B = B * A |
| compound division | /= | 除法AND赋值运算符。 它将左操作数与右操作数相除,并将结果分配给左操作数 | B / = A等效于B = B / A |
| compound modulo | %= | 模数AND赋值运算符。 它使用两个操作数来取模,并将结果分配给左操作数 | B%= A等效于B = B%A |
| compound bitwise or | |= | 按位包含OR和赋值运算符 | A | = 2与A = A |相同 2 |
| compound bitwise and | &= | 按位AND赋值运算符 | A&amp; = 2与A = A&amp; 2 |