-

运算符是一个符号,它告诉编译器执行特定的数学或逻辑函数。C语言具有丰富的内置运算符,并提供以下类型的运算符:

  • Arithmetic Operators 算术运算符
  • Comparison Operators 比较运算符
  • Boolean Operators 布尔运算符
  • Bitwise Operators 位运算符
  • Compound Operators 复合运算符

算术运算符

假设变量A为10,变量B为20,则:

示例

运算符名称运算符简写描述例子
赋值运算符
=将等号右侧的值存储在等号左边的变量中。A = B
加号+两个操作数相加A + B将得出30
减号-从第一个操作数中减去第二个操作数A - B将得出-10
乘号*将两个操作数相乘A * B将得出200
除号/用分母除分子B / A将得出2
模数%模数运算符和整数除后的余数B % A将得出0


比较运算符

假设变量A为10,变量B为20,则:

示例

运算符名称运算符简写
描述例子
等于==检查两个操作数的值是否相等,如果相等,则条件为真(true)。(A == B)不为真
不等于!=检查两个操作数的值是否相等,如果值不相等,则条件为真。(A != B)为真
小于<检查左操作数的值是否小于右操作数的值,如果是,则条件为真。(A < B)为真
大于>检查左操作数的值是否大于右操作数的值,如果是,则条件为真。(A > B)不为真
小于或等于<=检查左操作数的值是否小于或等于右操作数的值,如果是,则条件为真。(A <= B)为真
大于或等于>=检查左操作数的值是否大于或等于右操作数的值,如果是,则条件为真。(A >= B)不为真


布尔运算符

假设变量A为10,变量B为20,则:

示例

运算符名称
运算符简写
描述例子
and(与)&&称为逻辑运算符与。如果两个操作数都是非零,那么条件为真。(A && B)为真
or(或)||称为逻辑运算符或。如果两个操作数中的任何一个是非零,则条件为真。(A || B)为真
not(非)!称为逻辑运算符非。用于反转其操作数的逻辑状态。如果条件为真,则逻辑运算符非将为假。!(A && B)为假


位运算符

假设变量A为60,变量B为13,则:

示例

运算符名称
运算符简写
描述例子
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


复合运算符

假设变量A为10,变量B为20,则:

示例

运算符名称
运算符简写
描述例子
自增++自增运算符,将整数值增加1A++ 将得出11
自减--自减运算符,将整数值减1A-- 将得出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相同