运算符是一个符号,它会告诉编译器执行特定的数学或逻辑函数。C语言具有丰富的内置运算符,常见的运算符有一下几种类型:算术运算符、比较运算符、布尔运算符、位运算符和复合运算符。
算术运算符
运算符名称 | 运算符符号 | 说明 | 例子 |
---|---|---|---|
赋值运算符 | = | 将符号右边的值给左边的变量 | A=b |
加 | + | 两个操作数相加 | A+B |
减号 | - | 从左边操作数中减去右边操作数 | A-B |
乘号 | * | 将两个操作数相乘 | A*B |
除号 | / | 用左操作数处于右操作数 | A/B |
取模运算 | % | 左操作数整除右操作数后的余数 | A%B |
比较运算符
运算符名称 | 运算符符号 | 说明 | 例子 |
---|---|---|---|
等于 | == | 判断两个操作数是否相等,如果相等则条件为真 | A==B |
不等于 | != | 判断两个操作数是否相等,如果不相等则条件为真 | A!=B |
小于 | < | 判断左操作数是否小于右操作数,如果小于则条件为真 | A<B |
大于 | > | 判断左操作数是否大于右操作数,如果大于则条件为真 | A>B |
小于或等于 | <= | 判断左操作数的值是否小于或等于右操作数的值,如果是,则条件为真 | A<=B |
大于或等于 | >= | 判断左操作数的值是否大于或等于右操作数的值,如果是,则条件为真。 | A>=B |
布尔运算符
运算符名称 | 运算符符号 | 说明 | 例子 |
---|---|---|---|
与运算 (and) |
&& | 如果两个操作数都是非零数,那么条件为真 | A && B |
或运算 (or) |
|| | 如果两个操作数中的任何一个是非零数,那么条件为真 | A || B |
非运算 (not) |
! | 用于翻转操作数的逻辑状态,如果条件为真,则非运算后为假 | !A |
位运算符
运算符名称 | 运算符符号 | 说明 | 例子 |
---|---|---|---|
与(and) | & | 两个操作数按二进制每一位进行与运算 | A & B |
或(or) | | | 两个操作数按二进制每一位进行或运算 | A |B |
异或(xor) | ^ | 两个操作数按二进制每一位进行运算,两个操作数的对应位不相同时结果才是真,其余都是假 | A^B |
非(not) | ~ | 按二进制每一位进行非运算,具有”翻转”位效果。 | ~A |
左移(shift left) | << | 二进制左移运算符。左操作数的值向左移动右操作数指定的位数 | A<<2 |
右移(shift right) | >> | 二进制右移运算符。左操作数的值向右移动右操作数指定的位数。 | A>>4 |
复合运算符
运算符名称 | 运算符符号 | 说明 | 例子 |
---|---|---|---|
自增加 | ++ | 自增加运算,将自身增加1 | A++ |
自减小 | — | 自减运算,将自身减小1 | A— |
复合加 | += | 先求加法后再赋值给左操作数 | B+=A 等于B=B+A |
复合减 | -= | 先求减法后再赋值给左操作数 | B-=A 等于B=B-A |
复合乘 | *= | 先乘法运算后再赋值给左操作数 | B=A 等于B=BA |
复合除 | /= | 先求商运算后再赋值给左操作数 | B/=A 等于B=B/A |
复合取模 | %= | 先求取模运算后再赋值给左操作数 | B%=A 等于B=B%A |
复合按位或 | |= | 按位或运算后再赋值 | B|=A 等于B=B|A |
复合按位与 | &= | 按位与运算后再赋值 | B&=A 等于B=B&A |