• 运算符的优先级


        首先要清楚都有哪几种运算符?
        算数运算符(单目运算符,双目运算符),移位运算符,关系运算符,逻辑运算符,三目运算符,赋值运算符,逗号运算符还有(),[],->,.(我在这里!).
        所有的运算符中:(),[],->,.    这四个运算符的优先级最高。
        其次是单目运算符,再次双目运算符,注意单目运算符的运算顺序是自右向左的。
        之后是移位运算符,<< >>
        第四是关系运算符,关系运算符中的< > <= >=四个运算符的优先级大于 == 和 != ,这样方便与我们写如下的代码:if( a<b == c<d) //a与b的大小顺序与c与d的大小顺序相同。
        逻辑运算符的优先级顺序是基于B语言等历史原因,我也不是特别了解,在此不作详述,其中只要记住 与 大于 或,异或在二者之间,注意不要忘了异或 ^ 这个运算符。
        三目运算符的优先级大于赋值运算符,这样我们就可以下如下的代码:tax_rate = income > 40000 && residency < 5 ? 3.5 : 2.0(想不出比这个更好的例子,索性就用人家的吧)。注意赋值运算符的运算顺序是自右向左的,但是不能理解“三目运算符的运算顺序是自右向左”是个什么情形?“?:?:”这样?有什么用处呢?
        逗号运算符的优先级最低,注意函数参数中的逗号不是运算符,eg.method(x,y)中x,y的求值顺序是未定义的,而method2((x,y))中的x,y的求值顺序是是确定的先x后y。
        这是从网上找来的C运算符优先级表:http://www.slyar.com/blog/c-operator-priority.html,这个东西在很多书上能找到,但是如果你想直接被它,太难了!

  • 相关阅读:
    PHPStorm下XDebug配置
    HDU 4633 Who's Aunt Zhang (Polya定理+快速幂)
    VC++深入详解-第五章学习心得
    nginx access log logrotate配置
    判断变量是否存在(python)
    一步一步学android之布局管理器——LinearLayout
    向前辈致敬 strspn
    poj 1087 (最大流)
    cocos2d-x Touch 事件应用的一个例子
    [置顶] C#扩展方法 扩你所需
  • 原文地址:https://www.cnblogs.com/kimimaro/p/2007842.html
Copyright © 2020-2023  润新知