C语言运算符的优先级(超全)

C语言运算符的优先级(超全)

最全总结,对于学习C的朋友们,运算符及其优先级还是必须要熟悉的!

C中的运算符共十三类:

  1. 算术运算符:+ - * / %
  2. 关系运算符:< > == <= >=
  3. 逻辑运算符:! && ||
  4. 位运算符:>> << ~ | ^ &
  5. 赋值运算符:=及其扩展运算符
  6. 条件运算符:?:
  7. 逗号运算符:,
  8. 指针运算符:* &
  9. 求字节运算符:sizeof
  10. 强制类型转换:(类型)
  11. 分量运算符:. ->
  12. 下标运算符:[ ]
  13. 其它:如函数调用运算符()

优先级:

优先级可分为十五级:

  1. []       ()        .           ->            左到右
    
  2.  ~   -(负号)    ++       --      *(指针)     &(取址)   !    (类型)(强制类型转换)    sizeof()      右到左,单目运算符
    
  3. /    *(乘)    %       左到右,双目运算符
    
  4. +     -               左到右,双目运算符
    
  5. <<     >>             左到右,双目运算符
    
  6. <      >      <=     >=         左到右,双目运算符
    
  7. ==      !=           左到右,双目运算符
    
  8. &(按位与)             左到右,双目运算符
    
  9. ^(按位异或)           左到右,双目运算符
    
  10. |                     左到右,双目运算符
    
  11. &&                    左到右,双目运算符
    
  12. ||                    左到右,双目运算符
    
  13. ? :                   右到左,三目运算符
    
  14. %=    /=   *=    +=    -=   <<=    >>=     &= (按位与后等于)  |=    ^=         右到左
    
  15. ,                    左到右
    

    同一优先级,运算顺序由运算方向决定

    !>算术运算符>关系运算符>&>^>|>逻辑运算符>三目运算符>赋值运算符

下面写一些体现运算关系的有趣代码:

int i=1,j=3;
i-1&&printf("%d\n",j&i);//此行不会打印出1(i&j)
i-1||printf("%d\n",j|i);//此行会打印出3(i|j)
i--&&printf("%d\n",~j);//此行会打印出-4(~j)
--i||printf("%d\n",i^j);//此行不会打印出-4(i^j)
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值