码迷,mamicode.com
首页 > 其他好文 > 详细

易错优先级

时间:2015-12-05 17:38:17      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:

优先级 表达式 误认为结果 实际结果

.的优先级高于*

(->操作符用于消除此问题)

*p.f

p所指对象的字段f

(即,误认为是(*p).f)

对p取f偏移,作为指针,然后进行解除引用操作

(即,实际为*(p.f))

[]高于* int *p[]

p是个指向int数组的指针

(即,误认为int (*p)[])

p是个元素为int指针的数组

(即,实际int *(p[]))

函数()高于* int *p() 误认为int (*p)() 实际int *(p())
==和!=高于位操作 (val & mask !=0) (val & mask)!=0 val & (mask !=0)
==和!=高于赋值符 c=getchar() !=EOF (c=getchar())!=EOF c=(getchar()!=EOF)
算术运算符高于位移运算符 m<<4+1 (m<<4)+1 m<<(4+1)
逗号运算符在所有运算符中优先级最低 i=1,2 i=(1,2) (i=1),2

易错优先级

标签:

原文地址:http://www.cnblogs.com/donald1024/p/5021802.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!