在C语言中,运算符的使用方式多样,它们根据类型和功能的不同,在表达式中扮演着各自的角色。以下是根据上述优先级列出的所有运算符及其基本使用方式:
1. 后缀运算符
()
:函数调用,如func()
。[]
:数组下标访问,如array[index]
。.
:结构体成员访问,如structVar.member
。->
:结构体指针成员访问,如ptrStruct->member
。
2. 前缀运算符
++
:自增,如++x
(先增后使用)或x++
(先使用后增)。--
:自减,如--x
(先减后使用)或x--
(先使用后减)。+
:正号,如+x
(通常用于强调,实际上等同于x
)。-
:负号,如-x
(取反)。*
:指针的解引用,如*ptr
。&
:取地址,如&x
。!
:逻辑非,如!condition
。~
:按位取反,如~x
。sizeof
:计算大小,如sizeof(type)
或sizeof expr
。_Alignof
(C11及以后):计算对齐要求,如_Alignof(type)
。
3. 乘法、除法、取模运算符
*
:乘法,如x * y
。/
:除法,如x / y
。%
:取模(求余),如x % y
。
4. 加法、减法运算符
+
:加法,如x + y
。-
:减法,如x - y
。
5. 移位运算符
<<
:左移,如x << n
(将x
的二进制位向左移动n
位)。>>
:右移,如x >> n
(将x
的二进制位向右移动n
位)。
6. 关系运算符
<
:小于,如x < y
。>
:大于,如x > y
。<=
:小于等于,如x <= y
。>=
:大于等于,如x >= y
。
7. 等于、不等于运算符
==
:等于,如x == y
。!=
:不等于,如x != y
。
8. 按位与运算符
&
:按位与,如x & y
(对x
和y
的每一位执行与操作)。
9. 按位异或运算符
^
:按位异或,如x ^ y
(对x
和y
的每一位执行异或操作)。
10. 按位或运算符
|
:按位或,如x | y
(对x
和y
的每一位执行或操作)。
11. 逻辑与运算符
&&
:逻辑与,如condition1 && condition2
(两个条件都为真时结果才为真)。
12. 逻辑或运算符
||
:逻辑或,如condition1 || condition2
(两个条件中只要有一个为真,结果就为真)。
13. 条件运算符
? :
:条件运算符,如condition ? expr1 : expr2
(如果condition
为真,则结果为expr1
,否则为expr2
)。
14. 赋值运算符
=
:简单赋值,如x = y
。- 复合赋值(如
+=
、-=
、*=
、/=
、%=
、<<=
、>>=
、&=
、^=
、|=
),它们结合了赋值和算术、位或逻辑运算,如x += y
(等同于x = x + y
)。
15. 逗号运算符
,
:逗号运算符,用于顺序执行多个表达式,如expr1, expr2
(整个表达式的值为expr2
的值)。