&=按位与后赋值变量&
=表达式
^=按位异或后赋值变量^
=表达式
|=按位或后赋值变量|
=表达式
15
;逗号运算符表达式;表达式;…左到右
从左向右顺
序运算
注:同一优先级的运算符,运算次序由结合方向所决定。
上表不容易记住。其实也用不着死记,用得多,看得多自然就记得了。也有人说不用记
这些东西,只要记住乘除法的优先级比加减法高就行了,别的地方一律加上括号。这在你自
己写代码的时候,确实可以,但如果是你去阅读和理解别人的代码呢?别人不一定都加上括
号了吧?所以,记住这个表,我个人认为还是很有必要的。
2。9。2,一些容易出错的优先级问题
上表中,优先级同为
1的几种运算符如果同时出现,那怎么确定表达式的优先级呢?这
是很多初学者迷糊的地方。下表就整理了这些容易出错的情况:
优先级问题表达式经常误认为的结果实际结果
。的优先级高于*
…》操作符用于消除这
个问题
*p。fp所指对象的字段
f
(*p)。f
对
p取
f偏移,作为
指针,然后进行解除
引用操作。*(p。f)
''高于*
int
*ap''ap是个指向
int数组
的指针
int
(*ap)''
ap是个元素为
int
指针的数组
int
*(ap'')
函数()高于*
int
*fp()fp是个函数指针,所
指函数返回
int。
int
(*fp)()
fp是个函数,返回
int
*
int
*(fp())
和!
=高于位操作
(val
&
mask
!=
0)
(val
&
mask)!=
0
val
&
(mask
!=
0)
和!
=高于赋值符
c
=
getchar()
!=
EOF
(c
=
getchar())
!=
EOF
c
=
(getchar()
!=
EOF)
算术运算符高于位移
运算符
msb
小提示:按 回车 [Enter] 键 返回书目,按 ← 键 返回上一页, 按 → 键 进入下一页。
赞一下
添加书签加入书架