C语言、C++、运算符优先级
来源:互联网 发布:重装系统开票软件 编辑:程序博客网 时间:2024/05/16 23:20
优先级
运算符
名称或含义
使用形式
结合方向
说明
1
[]
数组下标
数组名[常量表达式]
左到右
()
圆括号
(表达式)/函数名(形参表)
.
成员选择(对象)
对象.成员名
->
成员选择(指针)
对象指针->成员名
2
-
负号运算符
-表达式
右到左
单目运算符
(类型)
强制类型转换
(数据类型)表达式
++
自增运算符
++变量名/变量名++
单目运算符
--
自减运算符
--变量名/变量名--
单目运算符
*
取值运算符
*指针变量
单目运算符
&
取地址运算符
&变量名
单目运算符
!
逻辑非运算符
!表达式
单目运算符
~
按位取反运算符
~表达式
单目运算符
sizeof
长度运算符
sizeof(表达式)
3
/
除
表达式/表达式
左到右
双目运算符
*
乘
表达式*表达式
双目运算符
%
余数(取模)
整型表达式/整型表达式
双目运算符
4
+
加
表达式+表达式
左到右
双目运算符
-
减
表达式-表达式
双目运算符
5
<<
左移
变量<<表达式
左到右
双目运算符
>>
右移
变量>>表达式
双目运算符
6
>
大于
表达式>表达式
左到右
双目运算符
>=
大于等于
表达式>=表达式
双目运算符
<
小于
表达式<表达式
双目运算符
<=
小于等于
表达式<=表达式
双目运算符
7
==
等于
表达式==表达式
左到右
双目运算符
!=
不等于
表达式!= 表达式
双目运算符
8
&
按位与
表达式&表达式
左到右
双目运算符
9
^
按位异或
表达式^表达式
左到右
双目运算符
10
|
按位或
表达式|表达式
左到右
双目运算符
11
&&
逻辑与
表达式&&表达式
左到右
双目运算符
12
||
逻辑或
表达式||表达式
左到右
双目运算符
13
?:
条件运算符
表达式1? 表达式2: 表达式3
右到左
三目运算符
14
=
赋值运算符
变量=表达式
右到左
/=
除后赋值
变量/=表达式
*=
乘后赋值
变量*=表达式
%=
取模后赋值
变量%=表达式
+=
加后赋值
变量+=表达式
-=
减后赋值
变量-=表达式
<<=
左移后赋值
变量<<=表达式
>>=
右移后赋值
变量>>=表达式
&=
按位与后赋值
变量&=表达式
^=
按位异或后赋值
变量^=表达式
|=
按位或后赋值
变量|=表达式
15
,
逗号运算符
表达式,表达式,…
左到右
从左向右顺序运算
C++ - 运算符优先级
优先级
运算符
含
示
结合方向
要求运算
对象的个数
可重载性
1
::
全局解析
::x
自右至左
一元操作符
不可重载
::
类域解析
X::x
自左至右
二元操作符
不可重载
2
.
直接成员选择运算符
s.len
自左至右
二元操作符
不可重载
( )
圆括号
可重载
( )
函数调用
rand( )
( )
类型构造
int( ch)
[ ]
下标运算符
a[i]
二元操作符
->
间接成员选择运算符
p->len
二元操作符
++
后增
n++
自右至左
一元操作符
- -
后减
n- -
一元操作符
3
!
逻辑非运算符
!p
自右至左
一元操作符
可重载
~
按位取反运算符
~s
++
前增运算符
++n
- -
前减运算符
- -n
-
负号运算符
-n
*
反引用运算符
*p
&
求地址运算符
&x
new
空间分配
new int(9)
delete
空间释放
delete p
(类型)
类型转换运算符
(int)ch
二元操作符
sizeof
长度运算符
sizeof(a)
一元操作符
不可重载
4
*
乘法运算符
m*n
自左至右
二元操作符
可重载
/
除法运算符
m/n
%
求余运算符
m%n
5
+
加法运算符
m+n
自左至右
二元操作符
可重载
-
减法运算符
m-n
6
<<
左移运算符
m<<n
自左至右
二元操作符
可重载
>>
右移运算符
m>>n
7
<
小于
x<y
自左至右
二元操作符
可重载
<=
小于等于
x<=y
>
大于
x>y
>=
大于等于
x>=y
8
==
等于运算符
x==y
自左至右
二元操作符
可重载
!=
不等于运算符
x!=y
9
&
按位与运算符
s&t
自左至右
二元操作符
可重载
10
^
按位异或运算符
s^t
自左至右
二元操作符
可重载
11
|
按位或运算符
s|t
自左至右
二元操作符
可重载
12
&&
逻辑与运算符
u&&v
自左至右
二元操作符
可重载
13
||
逻辑或运算符
u||v
自左至右
二元操作符
可重载
14
?
条件运算符
u? x : y
自左至右
三元操作符
不可重载
15
=
赋值运算符
n=22
自右至左
二元操作符
可重载
+=
先加,再赋值
n+=8
-=
先减,再赋值
n-=4
*=
先乘,再赋值
n*= -1
/=
先除,再赋值
n/10
%=
先求余,再赋值
n%=10
>>=
先左移位,再赋值
n>>=1
<<=
先右移位,再赋值
N<<=1
&=
先按位与,再赋值
s&=mask
^=
先按位异或,再赋值
s^=mask
|=
先按位或,再赋值
s|=mask
16
,
逗号运算符
++m,- -n
自左至右
可重载
- c语言运算符优先级
- c语言运算符优先级
- c语言运算符优先级
- c语言运算符优先级
- c语言运算符优先级
- C语言运算符优先级
- C语言运算符优先级
- C 语言运算符优先级
- C语言运算符优先级
- C语言运算符优先级
- C语言运算符优先级
- C语言运算符优先级
- C语言:运算符优先级
- C语言运算符优先级
- c语言运算符优先级
- C语言运算符优先级
- C语言运算符优先级
- c语言运算符优先级
- 简单对象访问协议
- 使用ueditor上传图片后,图片路径不正确导致图片不能显示
- Springmvc 使用 AbstractExcelView 导出excel
- vm10虚拟机安装Mac OS X10.10教程
- Eclipse 浏览文件(直接打开workspace文件)插件:EasyExplorer 和 OpenExplorer
- C语言、C++、运算符优先级
- google学术不能用的解决方案
- ACM - 插入排序
- struts2基本原理
- WCF Services资料收藏
- live555 在I帧比较大的时候,200k-300k情况下,容易丢I帧
- 活动记录
- RedHat5.6、6.0使用CentOS yum源
- UIView 转化为 UIImage,将UIImage 保存到沙盒中