运算符是一个符号,它告诉编译器执行特定的数学或逻辑函数。C语言具有丰富的内置运算符,并提供以下类型的运算符:
- Arithmetic Operators 算术运算符
- Comparison Operators 比较运算符
- Boolean Operators 布尔运算符
- Bitwise Operators 位运算符
- Compound Operators 复合运算符
算术运算符
运算符名称 |
运算符简写 |
描述 |
例子 |
赋值运算符 |
= |
将等号右侧的值存储在等号左边的变量中。 |
A = B |
加号 |
+ |
两个操作数相加 |
A + B将得出30 |
减号 |
- |
从第一个操作数中减去第二个操作数 |
A - B将得出-10 |
乘号 |
* |
将两个操作数相乘 |
A * B将得出200 |
除号 |
/ |
用分母除分子 |
B / A将得出2 |
模数 |
% |
模数运算符和整数除后的余数 |
B % A将得出0 |
比较运算符
运算符名称 |
运算符简写 |
描述 |
例子 |
等于 |
== |
检查两个操作数的值是否相等,如果相等,则条件为真(true)。 |
(A == B)不为真 |
不等于 |
!= |
检查两个操作数的值是否相等,如果值不相等,则条件为真。 |
(A != B)为真 |
小于 |
< |
检查左操作数的值是否小于右操作数的值,如果是,则条件为真。 |
(A < B)为真 |
大于 |
> |
检查左操作数的值是否大于右操作数的值,如果是,则条件为真。 |
(A > B)不为真 |
小于或等于 |
<= |
检查左操作数的值是否小于或等于右操作数的值,如果是,则条件为真。 |
(A <= B)为真 |
大于或等于 |
>= |
检查左操作数的值是否大于或等于右操作数的值,如果是,则条件为真。 |
(A >= B)不为真 |
布尔运算符
运算符名称 |
运算符简写 |
描述 |
例子 |
and(与) |
&& |
称为逻辑运算符与。如果两个操作数都是非零,那么条件为真。 |
(A && B)为真 |
or(或) |
|| |
称为逻辑运算符或。如果两个操作数中的任何一个是非零,则条件为真。 |
(A || B)为真 |
not(非) |
! |
称为逻辑运算符非。用于反转其操作数的逻辑状态。如果条件为真,则逻辑运算符非将为假。 |
!(A && B)为假 |
位运算符
运算符名称 |
运算符简写 |
描述 |
例子 |
and(与) |
& |
如果同时存在于两个操作数中,二进制AND运算符复制一位到结果中。 |
(A & B)将得出12,即0000 1100 |
or(或) |
| |
如果存在于任一操作数中,二进制OR运算符复制一位到结果中。 |
(A | B)将得出61,即0011 1101 |
xor(异或) |
^ |
如果存在于其中一个操作数中但不同时存在于两个操作数中,二进制XOR运算符复制一位到结果中。 |
(A ^ B)将得出49,即0011 0001 |
not(非) |
~ |
二进制NOT运算符是一元运算符,具有"翻转"位效果。 |
(〜A)将得出-60,即1100 0011 |
shift left(左移) |
<< |
二进制左移运算符。左操作数的值向左移动右操作数指定的位数。 |
A<< 2将得出240,即1111 0000 |
shift right(右移) |
>> |
二进制右移运算符。左操作数的值向右移动右操作数指定的位数。 |
A>> 2将得出15,即0000 1111 |
复合运算符
运算符名称 |
运算符简写 |
描述 |
例子 |
自增 |
++ |
自增运算符,将整数值增加1 |
A++ 将得出11 |
自减 |
-- |
自减运算符,将整数值减1 |
A-- 将得出9 |
复合加 |
+= |
加且赋值运算符。把右边操作数加上左边操作数的结果赋值给左边操作数。 |
B += A 等效于 B = B + A |
复合减 |
-= |
减且赋值运算符。把左边操作数减去右边操作数的结果赋值给左边操作数。 |
B -= A等效于B = B - A |
复合乘 |
*= |
乘且赋值运算符。把右边操作数乘以左边操作数的结果赋值给左边操作数。 |
B *= A等价于B = B * A |
复合除 |
/= |
除且赋值运算符。把左边操作数除以右边操作数的结果赋值给左边操作数。 |
B /= A等效于B = B / A |
复合模数 |
%= |
求模且赋值运算符。 求两个操作数的模赋值给左边操作数 |
B %= A等效于B = B % A |
复合按位或 |
|= |
按位或且赋值运算符 |
A |= 2与A = A | 2相同 |
复合按位与 |
&= |
按位与且赋值运算符 |
A &= 2与A = A & 2相同 |