符号-分节7(运算符的优先级上)

来源:互联网 发布:谈恋爱软件 编辑:程序博客网 时间:2024/05/17 09:22
运算符的优先级表

C 语言的符号众多,由这些符号又组合成了各种各样的运算符。

既然是运算符就一定有 其特定的优先级,下表就是C 语言运算符的优先级表: 优先级运算符名称或含义使用形式结合方向说。

1
[] 数组下标数组名[常量表达式] 左到右 () 圆括号
(表达式)/函数名(形 参表)

. 成员选择(对象) 对象.成员名
-> 成员选择(指针) 对象指针->成员名
2
- 负号运算符

-表达式 右到左

单目运算符
(类型) 强制类型转换

(数据类型)表达式
++ 自增运算符

++变量名/变量名++

单目运算符

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

单目运算符

* 取值运算符

*指针变量单目运算符

& 取地址运算符

&变量名

单目运算符

! 逻辑非运算符

!表达式单目运算符

~ 按位取反运算符

~表达式单目运算符

sizeof 长度运算符

sizeof(表达式)

3
/ 除表达式/表达式 左到右 双目运算符
* 乘表达式*表达式双目运算符

 % 余数(取模) 整型表达式/整型表 达式
双目运算符
4
+ 加表达式+表达式 左到右 双目运算符
- 减表达式-表达式双目运算符 5
<< 左移变量<<表达式 左到右 双目运算符
>> 右移变量>>表达式双目运算符 6
> 大于表达式>表达式 左到右 双目运算符
>= 大于等于表达式>=表达式双目运算符 < 小于表达式<表达式双目运算符
<= 小于等于表达式<=表达式双目运算符 7
== 等于表达式==表达式 左到右 双目运算符
!= 不等于表达式!= 表达式双目运算符
8 & 按位与表达式&表达式左到右双目运算符

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

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

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

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

13 ?: 条件运算符 表达式1? 表达式2: 表达式3 右到左三目运算符

 14 = 赋值运算符变量

=表达式 右到左
/= 除后赋值变量/=表达式

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

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

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

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

左移后赋值变量<<=表达式 >>= 右移后赋值变量>>=表达式
注:同一优先级的运算符,运算次序由结合方向所决定。
上表不容易记住。其实也用不着死记,用得多,看得多自然就记得了。

也有人说不用记 这些东西,只要记住乘除法的优先级比加减法高就行了,别的地方一律加上括号。

这在你自 己写代码的时候,确实可以,但如果是你去阅读和理解别人的代码呢?别人不一定都加上括 号了吧?

所以,记住这个表,我个人认为还是很有必要的。

0 0
原创粉丝点击