C 语言运算符

Posted tdtgcraft

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C 语言运算符相关的知识,希望对你有一定的参考价值。

优先级

运算符(红字加粗)

名称或含义

使用形式

结合方向

说明

1

[]

数组下标

数组名[常量表达式]

左到右

()

圆括号

(表达式)

函数名(形参名)

.

成员选择(对象)

对象.成员名

->

成员选择(指针)

对象指针->成员名

2

 +-

正号/负号运算符

 +(或-)表达式

右到左

单目运算符

(类型)

强制类型转换

(数据类型)表达式

 ++

自增运算符

++变量名

变量名++

单目运算符

--

自减运算符

--变量名

变量名--

单目运算符

*

取值运算符

*指针变量

单目运算符

&

取地址运算符

&变量名

单目运算符

!

逻辑非运算符

!表达式

单目运算符

~

按位取反运算符

~表达式

单目运算符

sizeof

内存长度运算符

sizeof(表达式)

3

()

圆括号

强制类型转换

右到左

单目运算符

4

/

表达式1 / 表达式2

左到右

双目运算符

*

表达式1 * 表达式2

双目运算符

%

余数(取模)

整型表达式1 % 整型表达式2

双目运算符

5

+

表达式1 + 表达式2

左到右

双目运算符

-

表达式1 - 表达式2

双目运算符

6

<< 

左移

变量 << 表达式

左到右

双目运算符

>> 

右移

变量 >> 表达式

双目运算符

7

>>=<<=

大于/大于等于/小于/小于等于

表达式1 >(或>=,<,<=) 表达式2

左到右

双目运算符

8

==

等于

表达式1 == 表达式2

左到右

双目运算符

!=

不等于

表达式1 != 表达式2

双目运算符

9

&

按位与

表达式1 & 表达式2

左到右

双目运算符

10

^

按位异或

表达式1 ^ 表达式2

左到右

双目运算符

11

|

按位或

表达式1 | 表达式2

左到右

双目运算符

12

&&

逻辑与

表达式1 && 表达式2

左到右

双目运算符

13

||

逻辑或

表达式1 || 表达式2

左到右

双目运算符

14

?:

条件运算符

表达式1 ? 表达式2 : 表达式3

右到左

三目运算符

15

=

赋值运算符

变量 = 表达式

右到左

/=*=%= +=-=

除后/乘后/取模后

加后/减后赋值

变量 /=(或*=或%=,+=,-=)表达式

<<=>>=

左移后/右移后赋值

变量 <<=(或>>=) 表达式

&=^=|=

按位与后/按位异或后/按位或后赋值

变量 &=(或^=,|=) 表达式

16

,

逗号运算符

表达式1, 表达式2, ...

左到右

  注意,你不需要记住它们的优先级。“脑海中本没有优先级,写的代码多了,也就清楚了。”记住一句话:遇事不决加括号除了“为考而考”的考试,这句话都适用)。

以上是关于C 语言运算符的主要内容,如果未能解决你的问题,请参考以下文章

c语言中规定 赋值运算符的左边必须是啥?

C语言中位移位运算符?

c语言的按位运算符怎么操作!?

C语言逻辑运算符和if语句

C语言逻辑运算符和if语句

C语言中,哪些运算符具有左结合性?哪些具有右结合性?