码迷,mamicode.com
首页 > 编程语言 > 详细

C语言运算符优先级存在的问题

时间:2014-07-16 21:32:51      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:问题   div   c   ar   amp   table   

C语言中的符号重载(C专家编程,2.3误做之过,P38)

 

优先级问题

表达式

人们可能误以为的结果

实际结果

.的优先级高于*

->操作符用于消除这个问题

*p.f

p所指对象的字段f

(*p).f

pf偏移,作为指针,然后进行解除引用操作

*(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())!=0

c=(getchar()!=EOF)

算术运算高于移位运算符

msb<<4+lsb

(msb<<4)+lsb

msb<<(4+lsb)

逗号运算符在所有运算符中优先级最低

i=1,2

i=(1,2)

(i=1),2

C语言运算符优先级存在的问题,布布扣,bubuko.com

C语言运算符优先级存在的问题

标签:问题   div   c   ar   amp   table   

原文地址:http://www.cnblogs.com/cszhj/p/3835927.html

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