博客
关于我
关于C之运算符优先级
阅读量:677 次
发布时间:2019-03-16

本文共 1555 字,大约阅读时间需要 5 分钟。

C语言运算符优先级说明

运算符在C语言中的优先级和结合方向直接影响代码的执行结果。理解运算符的优先级规则有助于避免逻辑错误。以下是C语言中常见运算符的优先级列表:

1. 继续

  • []:数组下标
    • 使用形式:数组名[整型表达式]
    • 结合方向:左到右

2. ()

  • ():圆括号
    • 使用形式:(表达式)/函数名(形参表)
    • 结合方向:无结合

3. .

  • .:成员选择(对象)
    • 使用形式:对象.成员名
    • 结合方向:无结合

4. ->

  • ->:成员选择(指针)
    • 使用形式:对象指针->成员名
    • 结合方向:无结合

5. 2. 单目运算符

  • -:负号运算符
    • 使用形式:-算术类型表达式
    • 结合方向:右到左

6. ()

  • type:强制类型转换
    • 使用形式:(纯量数据类型)纯量表达式
    • 结合方向:无结合

7. ++、--

  • ++、--:自增、自减运算符
    • 使用形式:
      • ++纯量类型可修改左值表达式
      • --纯量类型可修改左值表达式
    • 结合方向:单目运算符

8. *, &

  • *、&:取值、取地址运算符
    • 使用形式:
      • *指针类型表达式
      • &表达式
    • 结合方向:单目运算符

9. !, ~, sizeof

  • !:逻辑非运算符
    • 使用形式:!纯量类型表达式
  • ~:按位取反运算符
    • 使用形式:~整型表达式
  • sizeof:长度运算符
    • 使用形式:
      • sizeof 表达式
      • sizeof(类型)
    • 结合方向:无结合

10. 3. 双目运算符

  • /、*、%:除、乘、余数运算符
    • 使用形式:
      • 表达式/表达式
      • 表达式*表达式
      • 整型表达式%整型表达式
    • 结合方向:左到右

11. 4. 常见算术运算符

  • +、-:加、减运算符
    • 使用形式:
      • 表达式+表达式
      • 表达式-表达式
    • 结合方向:左到右

12. 5. 移位运算符

  • <<、>>:左移、右移运算符
    • 使用形式:
      • 整型表达式<<整型表达式
      • 整型表达式>>整型表达式
    • 结合方向:左到右

13. 6. 关系运算符

  • >、>=、<、<=:大于、大于等于、小于、小于等于运算符
    • 使用形式:
      • 表达式>表达式
      • 表达式>=表达式
      • 表达式<表达式
      • 表达式<=表达式
    • 结合方向:左到右

14. 7. 等式运算符

  • ==、!=:等于、不等于运算符
    • 使用形式:
      • 表达式==表达式
      • 表达式!=表达式
    • 结合方向:左到右

15. 按位运算符

  • &、^、|:按位与、按位异或、按位或运算符
    • 使用形式:
      • 整型表达式&整型表达式
      • 整型表达式^整型表达式
      • 整型表达式|整型表达式
    • 结合方向:左到右

16. 8. 逻辑运算符

  • &&、||:逻辑与、逻辑或运算符
    • 使用形式:
      • 表达式&&表达式
      • 表达式||表达式
    • 结合方向:左到右

17. 9. 赋值运算符

  • =、/=、*=、%=、<<=、>>=、&=、^=、|=:赋值运算符
    • 使用形式:
      • 可修改左值表达式=表达式
      • 可修改左值表达式/=表达式
      • 可修改左值表达式*=表达式
      • 可修改左值表达式%=表达式
      • 可修改左值表达式+=表达式
      • 可修改左值表达式-=表达式
      • 可修改左值表达式<<=表达式
      • 可修改左值表达式>>=表达式
      • 可修改左值表达式&=表达式
      • 可修改左值表达式^=表达式
      • 可修改左值表达式|=表达式
    • 结合方向:右到左

18. 10. 逗号运算符

  • ,:逗号运算符
    • 使用形式:表达式,表达式,…
    • 结合方向:左到右

运算符结合方向规则

  • 右结合:以下运算符遵循右结合:
    • !
    • --
    • +=
    • -=
    • *=
    • /=
    • %=
    • <<=
    • >>=
    • &=
    • ^=
    • |=
  • 左结合:以下运算符遵循左结合:
    • 算术运算符(+, -, *, /, %, <<, >>
    • 关系运算符(>, >=, <, <=
    • ==, !=
    • &&, ||
    • 按位运算符(&, ^, |
  • 单目运算符:自增、自减、逻辑非、取反、取值、取地址运算符,均为单目运算符。

了解这些运算符的优先级和结合方向,有助于编写更高效、更正确的C代码。

转载地址:http://rnmqz.baihongyu.com/

你可能感兴趣的文章
RabbitMQ
查看>>
PHP的威胁函数与PHP代码审计实战
查看>>
PHP的引用举例
查看>>
PHP相关代码
查看>>
RabbitMQ
查看>>
php知识点记录
查看>>
PHP类数组式访问(ArrayAccess接口)
查看>>
PHP系列:浅谈PHP中isset()和empty() 函数的区别
查看>>
PHP索引数组unset的坑-array_values解决方案
查看>>
PHP索引数组排序方法整理(冒泡、选择、插入、快速)
查看>>
PHP线程安全和非线程安全
查看>>
R3LIVE开源项目常见问题解决方案
查看>>
php缃戠珯,www.wfzwz.com
查看>>
php缓存查询函数
查看>>
php编写TCP服务端和客户端程序
查看>>
php编码规范
查看>>
PHP编码规范-PSR1、psr2 /psr3 psr4
查看>>
PHP编程效率的20个要点
查看>>
PHP网页缓存技术优点及代码
查看>>
PHP自动化测试(一)make test 和 phpt
查看>>