C语言中的操作符分类如下:
- 算术操作符:
+
:加法-
:减法*
:乘法/
:除法%
:取模(求余数)
- 关系操作符:
==
:等于!=
:不等于>
:大于<
:小于>=
:大于或等于<=
:小于或等于
- 逻辑操作符:
&&
:逻辑与||
:逻辑或!
:逻辑非
- 赋值操作符:
=
:简单赋值+=
:加后赋值-=
:减后赋值*=
:乘后赋值/=
:除后赋值%=
:取模后赋值<<=
:左移后赋值>>=
:右移后赋值&=
:按位与后赋值^=
:按位异或后赋值|=
:按位或后赋值
- 位操作符:
&
:按位与|
:按位或^
:按位异或~
:按位取反<<
:左移>>
:右移
- 条件(三元)操作符:
? :
:条件表达式,例如x > y ? x : y
- 自增和自减操作符:
++
:自增--
:自减
- 杂项操作符:
sizeof()
:返回数据类型的大小&
:返回变量的地址*
:指向变量的指针(解引用)->
:成员访问操作符,用于指向结构体的指针.
:成员访问操作符,用于结构体变量?
:条件操作符的前缀:
:条件操作符的后缀:
:标签定义符,用于标记一个语句...
:变长参数列表,用于函数定义中
- 复合赋值操作符:
- 上述的赋值操作符和算术操作符结合使用,例如
a += b
相当于a = a + b
- 上述的赋值操作符和算术操作符结合使用,例如
- 特殊操作符:
goto
:无条件跳转asm
:内联汇编语言
这些操作符在C语言中扮演着重要的角色,用于执行各种操作和计算。正确使用这些操作符对于编写有效的C程序至关重要。
下面是C语言操作符优先级的表格形式,从最高优先级到最低优先级:
操作符类别 | 操作符 | 结合性 |
---|---|---|
括号 | () | 从左到右 |
一元 | ++ , -- , + , - , ! , ~ , * , & , sizeof | 从右到左 |
乘除 | * , / , % | 从左到右 |
加减 | + , - | 从左到右 |
移位 | << , >> | 从左到右 |
关系 | < , <= , > , >= | 从左到右 |
相等性 | == , != | 从左到右 |
按位与 | & | 从左到右 |
按位异或 | ^ | 从左到右 |
按位或 | | | 从左到右 |
逻辑与 | && | 从左到右 |
逻辑或 | Ⅱ | 从左到右 |
条件(三元) | ? : | 从右到左 |
赋值 | = , += , -= , *= , /= , %= <<= , >>= , &= , ^= , |= , | 从右到左 |
逗号 | , | 从左到右 |
结合性 “从左到右” 表示操作符按照从左到右的顺序计算,而 “从右到左” 表示操作符按照从右到左的顺序计算。例如,一元操作符 ++
和 --
是从右到左结合的,所以 a = ++b
先对 b
进行自增,然后将结果赋值给 a
,而 a = b++
先将 b
的值赋值给 a
,然后对 b
进行自增。