catch 发表于 2013-12-24 12:23:18

c语言的操作符优先级

本帖最后由 catch 于 2013-12-24 12:26 编辑

C语言运算符优先级
优先级运算符名称或含义使用形式结合方向说明
1[]数组下标
数组名[常量表达式]
左到右--
()圆括号
(表达式)/函数名(形参表)
--
.成员选择(对象)
对象.成员名
--
->成员选择(指针)
对象指针->成员名
--


2-负号运算符
-表达式
右到左单目运算符
~按位取反运算符
~表达式

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

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

*取值运算符
*指针变量

&取地址运算符
&变量名

!逻辑非运算符
!表达式

(类型)强制类型转换
(数据类型)表达式
--
sizeof长度运算符
sizeof(表达式)
--


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

%余数(取模)
整型表达式%整型表达式

4+加
表达式+表达式
左到右双目运算符
-减
表达式-表达式

5<< 左移
变量<<表达式
左到右双目运算符
>> 右移
变量>>表达式



6> 大于
表达式>表达式
左到右双目运算符
>=大于等于
表达式>=表达式

< 小于
表达式<表达式

<=小于等于
表达式<=表达式

7==等于
表达式==表达式
左到右双目运算符
!=不等于
表达式!= 表达式



8&按位与
表达式&表达式
左到右双目运算符
9^按位异或
表达式^表达式
左到右双目运算符
10|按位或
表达式|表达式
左到右双目运算符
11&&逻辑与
表达式&&表达式
左到右双目运算符
12||逻辑或
表达式||表达式
左到右双目运算符


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


14=赋值运算符
变量=表达式
右到左--
/=除后赋值
变量/=表达式
--
*=乘后赋值
变量*=表达式
--
%=取模后赋值
变量%=表达式
--
+=加后赋值
变量+=表达式
--
-=减后赋值
变量-=表达式
--
<<=左移后赋值
变量<<=表达式
--
>>=右移后赋值
变量>>=表达式
--
&=按位与后赋值
变量&=表达式
--
^=按位异或后赋值
变量^=表达式
--
|=按位或后赋值
变量|=表达式
--


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

说明:    同一优先级的运算符,运算次序由结合方向所决定。
    简单记就是:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符

maomingkun 发表于 2013-12-24 13:30:47

支持楼主啊

独自存活 发表于 2013-12-24 13:40:56

先收藏一下

musilintan 发表于 2013-12-24 14:10:36

感谢楼主分享。。。。

windimi007 发表于 2014-3-4 22:08:55

正好学到,感谢楼主分享!{:7_155:}

abel 发表于 2014-4-21 10:43:57

感谢楼主分享
页: [1]
查看完整版本: c语言的操作符优先级