zoukankan      html  css  js  c++  java
  • 隐藏了两年的语法错误

    与或优先级问题,看看各位大虾有多少和我犯同样错误的?

    x = 1, y = 0, z = -1;
    q = ++x || ++y && ++z;

    q会等于0?还是1?

    你认为呢?

    看分析:

    优先级      操作符  
    1 () [] -> .  
      ::     
      ! ~ ++ --  
    2 - (unary) * (dereference)  
      & (address of) sizeof  
    3 ->* .*    
    4 * (multiply) / %  
    5 + -  
    6 << >>  
    7 < <= > >=  
    8 == !=  
    9 & (bitwise AND)  
    10 ^  
    11 |  
    12 &&  
    13 ||  
    14 ? :   
    15 = += -= etc.  
    16 ,  

    注意:由于||和&&都是从左向右执行,而&&优先级大于||,所以实际执行效果是q=(++x)||(++y && ++z);

    所以q的结果是1。

    我原先一直停留在&&和||的优先级相同,共同存在时都是自左向右执行,结果就成了0.

    说了惭愧啊。。。

  • 相关阅读:
    所有者权益
    金融工具
    或有事项
    股份支付
    借款费用
    Keycode对照表
    js(jQuery)获取时间搜集
    jQuery实现CheckBox全选、全不选
    JS 截取字符串函数
    jQuery mouseenter与mouseleave
  • 原文地址:https://www.cnblogs.com/wwwroot/p/2719347.html
Copyright © 2011-2022 走看看