博客
关于我
关于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/

你可能感兴趣的文章
Office办公软件里的“开发工具”选项卡-ChatGPT4o作答
查看>>
Offline Installation the .NET Framework 3.5 on Windows 8
查看>>
OGG初始化之使用数据库实用程序加载数据
查看>>
ogg参数解析
查看>>
ognl详解
查看>>
Ogre 插件系统
查看>>
Oil Deposits
查看>>
oj2894(贝尔曼福特模板)
查看>>
OJ4TH|Let's play a game
查看>>
OJ中处理超大数据的方法
查看>>
OJ中常见的一种presentation error解决方法
查看>>
OK335xS UART device registe hacking
查看>>
ok6410内存初始化
查看>>
OkDeepLink 使用教程
查看>>
OKHTTP
查看>>
Okhttp3添加拦截器后,报错,java.io.IOException: unexpected end of stream on okhttp3.Address
查看>>
OkHttp透明压缩,收获性能10倍,外加故障一枚
查看>>
OKR为什么到今天才突然火了?
查看>>
ol3 Demo2 ----地图搜索功能
查看>>
OLAP、OLTP的介绍和比较
查看>>