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

C语言:C运算符优先级

时间:2020-01-29 10:40:42      阅读:73      评论:0      收藏:0      [点我收藏+]

标签:不能   预测   amp   ||   eof   顺序   异或   语言   元素   

元素单目乘除余,

加减移位大小等,

位与异或逻与或,

条件赋值组合逗。
 
元素:   ()  []   ->   .
单目:    !   ~   ++   --   (type)类型转换   *   &   sizeof
乘除余:*   /   %
加减:    +   -
移位:    <<   >>
大小:    <   <=    >   >=
等:        ==   !=
位与:    &
位异或:^
位非:    |
逻与:    &&
逻或:    ||
条件:    ?:
赋值:    =
组合:    +=   /=   -=   *=
逗:        ,
 
★单目运算符、赋值是“自右向左”,所以*p++会被解释成*(p++),而不是(*p)++。
其他运算符结合性都是“自左向右”,所以a,b,c等价于 (a,b),c 而不是a,(b,c)。
★单目运算符低于元素运算符,所以定义一个函数指针p,要写成 (*p)(),如果写成*p(),会被解释成*((p))。
★类型转换也是单目运算符,优先级与其他单目一致,注意单目是“自右向左”结合的。
★与或异或并不同级:与>(异或)>或。
★赋值运算符不能保证任何求值顺序,所以 y[i]=x[i++] 是不可预测的,y[i]中的i可能是自增后的,也可能是自增前的。同理 y[i++]=x[i]也是不可预测的

C语言:C运算符优先级

标签:不能   预测   amp   ||   eof   顺序   异或   语言   元素   

原文地址:https://www.cnblogs.com/wuqi1003/p/12239625.html

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