Chinaunix首页 | 论坛 | 博客
  • 博客访问: 535745
  • 博文数量: 181
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1498
  • 用 户 组: 普通用户
  • 注册时间: 2013-12-22 15:17
个人简介

用发呆的时间来理清自己的思绪

文章存档

2015年(7)

2014年(134)

2013年(40)

分类: C/C++

2013-12-25 15:16:08

    接触C语言已经有好多年了,但是对于C语言中的各种运算符总是搞不清楚,尤其是对各种运算符的优先级更是头疼,相信大家有和我一样的感受吧各类运算符的优先级,通过查阅资料现就各种运算符的优先级总结如下:

     C语言中一般有初等运算符、单目运算符、算术运算符、关系运算符、位运算符、逻辑运算符、条件运算符、符合运算符和逗号运算符,一共有十五个优先级:

1   ()  []  .  ->                (初等运算符)

2   !(逻辑非)              ~(按位取反)   -(负号) ++  --   &(取变量地址)*   (type)(强制类型)    sizeof    (单目运算符)

3   * / %                      (算术运算符:一共5个(+、-、*、/、%),先乘除、后加减)

4   + -                          (算术运算符:一共5个,先乘除、后加减)

5   >> <<                   (位运算符:一共6个(&、|、~、^、>>、<<),左移、右移)

6   > >= < <=            (关系运算符:6个)

7   == !=                    (关系运算符:6个)

8   &                            (位与)

9   ^                           (位异或)

10  |                           (位或)

11  &&                       (逻辑与)

12  ||                         (逻辑或)

13  ?:                (条件运算符,C语言中唯一一个三目运算符)

14   =  +=  -=  *=  /=   %=  |=   ^=   &=   >>=   <<=    (复合运算符)

15  ,                       (逗号运算符,优先级最低)

     总结,C语言中比较有特色的位运算符的优先级比较分散,比如按位取反(~)运算在算术运算符之前,<<和>>运算符在关系运算符之前,而&、|、^运算符在关系运算符之后,因此,为了避免发生逻辑上的错误,在使用位运算符时建议加上括号。
      注意:从总结中可以发现,运算符的优先级规律是从高到低依次为:单目运算符---->算术运算符---->移位运算符---->关系运算符---->位运算---->逻辑运算符---->三目运算符---->赋值运算符---->逗号运算符。

阅读(775) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~