C语言符号优先级

更新时间:2023-04-22 12:28:50 阅读: 评论:0


2023年4月22日发(作者:93论文网)

附录2 C语言中的运算符及其优先级

附录2 C语言中的运算符及其优先级

优先级 运算符 名称或含义 使用形式 结合方向 说明

[] 数组下标 数组名[常量表达式]

1 (形参表) 左到右

() 圆括号

. 成员选择(对象) 对象.成员名

-> 成员选择(指针) 对象指针->成员名

- 负号运算符 -表达式 单目运算符

(类型) 强制类型转换 (数据类型)表达式

++ 自增运算符 ++变量名/变量名++ 单目运算符

2 * 取值运算符 *指针变量 右到左 单目运算符

-- 自减运算符 --变量名/变量名-- 单目运算符

& 取地址运算符 &变量名 单目运算符

! 逻辑非运算符 !表达式 单目运算符

~ 按位取反运算符 ~表达式 单目运算符

sizeof 长度运算符 sizeof(表达式)

/ 表达式/表达式 双目运算符

3 左到右

* 表达式*表达式 双目运算符

% 余数(取模) 双目运算符

4 左到右

5 左到右

+ 表达式+表达式 双目运算符

- 表达式-表达式 双目运算符

<< 左移 变量<<表达式 双目运算符

>> 右移 变量>>表达式 双目运算符

> 大于 表达式>表达式 双目运算符

6 左到右

>= 大于等于 表达式>=表达式 双目运算符

< 小于 表达式<表达式 双目运算符

<= 小于等于 表达式<=表达式 双目运算符

== 等于 表达式==表达式 双目运算符

!= 不等于 表达式!= 表达式 双目运算符

& 按位与 表达式&表达式 双目运算符 8 最长的歌 左到右 感恩手抄报

^ 按位异或 表达式^表达式 双目运算符 9 左到右

| 按位或 表达式|表达式 双目运算符 10 左到右

&& 逻辑与 表达式&&表达式 双目运算符 11 左到右

|| 逻辑或 表达式||表达式 双目运算符 12 左到右

?: 条件运算符 三目运算符 13 右到左

= 赋值运算符 变量=表达式

14 右到左

/= 除后赋值 变量/=表达式

*= 乘后赋值 变量*=表达式

%= 取模后赋值 变量%=表达式

306

(表达式)/函数名

整型表达式/整型表

达式

表达式1? 表达式2:

表达式3

7 左到右

附录2 C语言中的运算符及其优先级

+= 加后赋值 变量+=表达式

-= 减后赋值 变量-=表达式

<<= 左移后赋值 变量<<=表达式

>>= 右移后赋值 变量>>=表达式

&= 按位与后赋值 变量&=表达式

^= 按位异或后赋值 变量^=表达式

|= 按位或后赋值 变量|=表达式

15 , 逗号运算符 表达式,表达式, 左到右

说明:

从左向右顺

序运算

同一优先级的运算符,运算次序由结合方向所决定。

由于C语言中运算符多,优先级复杂,难以记忆,针对上述运算符,我们可以归纳成几名口

诀,以便于记忆:

优先级口诀

括号成员第一; 括号运算符[]() 成员运算符. ->

全体单目第二; 所有的单目运算符比如++ -- +() -() 指针运算*&

乘除余三,加减四; 这个""是指取余运算即%

移位五,关系六; 移位运算符:<< >> ,关系:> < >= <=

等于()不等排第七; == !=

位与异或和位或; 这几个都是位运算: 位与(&)异或(^)位或(|)

"三分天下"八九十;

逻辑或跟与; 逻辑运算符:|| &&

十二和十一; 注意顺序:优先级(||) 底于 优先级(&&)

条件高于赋值, 三目运算符优先级排到 13 位只比赋值运算符和","

逗号运算级最低! 逗号运算符优先级最低

C优先级的口诀 收藏

学习C语言也有一段时间了,感觉C语言的运算符优先级很难记住,特别是对于初学者而言!

也许你会说没有记住没关系,用括号来改变优先级就可以了。但是很多情况下,因为依赖括

号很容易导致程序可读性差,当然我不是反对加括号,只是提倡恰到好

处。总之,还是记住好些,读别人的程序也方便点。近来翻看了一下优先级,感觉还是有规

律可循的,拿来和大家分享,希望对大家有帮助!

先给出C语言的运算符优先级表:

C语言运算符优先级表(由上至下,优先级依次递减)

运算符

结合性

307

附录2 C语言中的运算符及其优先级

从严治党心得体会 红豆诗词

()

[] -> .

自左向右

!

~ ++ -- - (type) * & sizeof

自右向左

*

/ %

自左向红色翡翠 右

+

-

自左向右

<< >>

自左向右

< <=

> >=

自左向右

== !=

自左向右

&

308

附录2 C语言中西关文化 的运算符及其优先级

自左向右

^

自左向右

|

自左向右

&&

自左向右

||

自左向右

?:

自右向左

Assignments

自右向左

,

自左向右

第一、像() [] -> .之类的理所当然是最优先的,其实它们压根也不算什么运算符了

第二、除了上面的四种运算符之外,接下来就是单目运算符,也就是!

~ ++ -- - (type) * & sizeof 了。记住它们的顺序可是自右向左啊!其实结合实例是

很容易理解的,比如i++等。

第三、跟着就是双目运算符了,也是C语言运算符优先级中文职类工作 最容易让人混淆的地方了。

309

附录2 C语言中的运算符及其优先级

也没有那么可怕,你认真观察就会发现。在双目运算符中,算术运算 符优先级最高,然后

是移位运算符,接着是关系运算符,再着是逻辑运算符。不过这边需要说的是,在关系运算

符中,< <=

> >=== !=的优先级来得高。此外,在逻辑运算符中,与运算又比或运算优先级来得

高,异或则处于二者之间。同样的,你可以苹果的寓意 类比出&&||的优先级关系.

第四、在双目操作符之后,就是三目操作符了,没有什么好说的了。

第五、然后是赋值操作符,你也许会把赋值操作符与三目运算符的优先级搞混。没有关系,

我想你一定写过这样的语句(如果没有,请你记住!max = (a>b)?a:b; ,从这个语句里,

你就不难记住赋值运算符为什么比三目运算符的优先级低了!

第六、逗号运算符是分割各个子语句的(感觉这么说有点不准确,不过我想大家会明白我的

意思的),自然优先级最低了,我想这个应该不是很容易混淆的。

总结一下,按运算符优先级从高到低:单目运算符->双目运算符->三目运算符->赋值

运算符->逗号运算符

特别在双目运算符中, 运算符优先级从高到低:算术运算符->移位运算符->关系

运算符(其中== !=优先级又较低)->逻辑运算符(按位与-〉按位异或-〉按位或-〉逻

辑与-〉逻辑或)

310


本文发布于:2023-04-22 12:28:50,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/842700.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图