运算符(一)
来源:互联网 发布:架空网络地板 编辑:程序博客网 时间:2024/05/24 01:14
一、运算符优先级
在一个表达式中可能包含多个有不同运算符连接起来的、具有不同数据类型的数据对象;由于表达式有多种运算,不同的运算顺序可能得出不同结果甚至出现错误运算错误,因为当表达式中含多种运算时,必须按一定顺序进行结合,才能保证运算的合理性和结果的正确性、唯一性。
下表给出优先级规则:
优先级
运算符
名称或含义
使用形式
结合方向
说明
1
[ ]
数组下标
数组名[整型表达式]
左到右
( )
圆括号
(表达式)/函数名(形参表)
.
成员选择(对象)
对象.成员名
->
成员选择(指针)
对象指针->成员名
2
-
负号运算符
-表达式
右到左
单目运算符
(类型)
强制类型转换
(数据类型)表达式
++
自增运算符
++变量名/变量名++
单目运算符
--
自减运算符
--变量名/变量名--
单目运算符
*
取值运算符
*指针表达式
单目运算符
&
取地址运算符
&左值表达式
单目运算符
!
逻辑非运算符
!表达式
单目运算符
~
按位取反运算符
~表达式
单目运算符
sizeof
长度运算符
sizeof 表达式/sizeof(类型)
3
/
除
表达式/表达式
左到右
双目运算符
*
乘
表达式*表达式
双目运算符
%
余数(取模)
整型表达式%整型表达式
双目运算符
4
+
加
表达式+表达式
左到右
双目运算符
-
减
表达式-表达式
双目运算符
5
<<
左移
表达式<<表达式
左到右
双目运算符
>>
右移
表达式>>表达式
双目运算符
6
>
大于
表达式>表达式
左到右
双目运算符
>=
大于等于
表达式>=表达式
双目运算符
<
小于
表达式<表达式
双目运算符
<=
小于等于
表达式<=表达式
双目运算符
7
==
等于
表达式==表达式
左到右
双目运算符
!=
不等于
表达式!= 表达式
双目运算符
8
&
按位与
整型表达式&整型表达式
左到右
双目运算符
9
^
按位异或
整型表达式^整型表达式
左到右
双目运算符
10
|
按位或
整型表达式|整型表达式
左到右
双目运算符
11
&&
逻辑与
表达式&&表达式
左到右
双目运算符
12
||
逻辑或
表达式||表达式
左到右
双目运算符
13
?:
条件运算符
表达式1? 表达式2: 表达式3
右到左
三目运算符
14
=
赋值运算符
变量=表达式
右到左
/=
除后赋值
变量/=表达式
*=
乘后赋值
变量*=表达式
%=
取模后赋值
变量%=表达式
+=
加后赋值
变量+=表达式
-=
减后赋值
变量-=表达式
<<=
左移后赋值
变量<<=表达式
>>=
右移后赋值
变量>>=表达式
&=
按位与后赋值
变量&=表达式
^=
按位异或后赋值
变量^=表达式
|=
按位或后赋值
变量|=表达式
15
,
逗号运算符
表达式,表达式,…
左到右
从左向右顺序运算
总结:
(1)逗号操作符,优先级最低;
(2)同级操作符,除单目运算符、条件运算符、赋值运算符这三个的优先级是从右至左结合的,大多数运算符是从左到右结合的;
(3)一般指针最优,单目运算优于双目运算;
(4)先乘除,后加减;
(5)先算术运算,再移位运算,最后位运算;
(6)逻辑运算最后计算;
0 0
- 运算符(一)
- 运算符(一)
- 运算符重载(一)
- 运算符重载(一)
- (一)java运算符
- 【Java】(一)运算符小结(算数运算符)
- 位运算符(一):C/C++位运算符
- 位运算符(一):C/C++位运算符
- C++重载运算符(一)如何重载运算符
- 运算符的重载(一目运算)
- 运算符及控制流程(一)
- JAVA第二弹(运算符<一>)
- C++中的运算符重载(一)
- 面试题(一) 赋值运算符
- 数据类型和运算符(一)
- operator重载运算符(一)
- 22 运算符重载(一)
- 数据类型和运算符(一)
- 企业APP(IPA包)发布到服务器
- 升级到 11.2.0.3/11.2.0.4 GI/ASM 前需要考虑的事情 (文档 ID 1623280.1)
- linux sed 替换两个字符之间的内容
- 圆角按钮
- 在Oracle数据库的表中插入图片的方法
- 运算符(一)
- 虚拟经济abc
- button的属性Image占用 用往button上添加了一个, 移除时候tag值找还蛮方便
- MAKEFILE学习笔记--简介
- ASIHTTPRequest
- 树型dp Codeforces633F The Chocolate Spree
- ActionBar 控件实现Tab页
- 卷积神经网络
- android apk 防止反编译技术第五篇-完整性校验