zoukankan      html  css  js  c++  java
  • C操作符优先级分类记忆

    曾经以为不需要记住C语言的操作符的优先级,但是现在发现加括号实在是太烦了,还是试着记吧。

    举例:

    常见错误1: if (flags & FLAG != 0) ...

    解析:!= 比&有更高优先级,相当于if (flags & (FLAG != 0))

    常见错误2:r = h<<1 + 2

    解析:+比<<有更高优先级,相当于 r = h<<(1+2)

    常见错误3: while ( c = getc(in) != EOF)

    解析:赋值运算符优先级最低,相当于 while ( c = (getc(in) != EOF))

    总结:

    C语言有15个操作符优先级,而且每个操作符还有不同的结合型,所以必须要分类记忆。以下从上到下,从左至右优先级由高到低:

    第一级,下标操作符[],函数调用(),结构体运算符->与.。结合型为左到右

    第二级,一元操作符,包括逻辑非!,按位取反~,自增/自减操作符++/--,负号运算符-,类型转换,指针*,取地址&,sizeof。结合性为右到左

    第三级,二元操作符,包括加减乘除,左移右移操作符<</>>,关系运算符</>/<=/>=,等于不等于=/!=,然后是

        按位与&, 按位异或^,按位或|,最后是逻辑与,逻辑或,条件运算符。除条件运算符外,结合性都为左到右

    第四级,所有的赋值运算符,逗号运算符。赋值结合性为左到右,逗号运算符为右到左。

  • 相关阅读:
    CLR 对比 JVM
    unity drawcall测试
    UGUI 分页渐变居中效果
    几个ADB常用命令
    jQuery分步步骤
    jquery toast插件
    jQuery数字滚动(模拟网站人气、访问量递增)原创
    jQuery实用工具集
    scrollReveal.js – 页面滚动显示动画JS
    jquery轻量级数字动画插件jquery.countup.js
  • 原文地址:https://www.cnblogs.com/dracohan/p/3007232.html
Copyright © 2011-2022 走看看