a>b&&c>b++中,++的运算优先级应该比逻辑运算符和比较运算符都要高,可是结果显示算的确是判断a>b,大侠们都说说为什么是这样子的呢

解决方案 »

  1.   

    用++b!
    ++b为加了在用!
    b++为用了在加!
      

  2.   

    用了++b,结果一样,b还是15.
    还有b++是用b++,后b还是要自增1
      

  3.   

    flag=false b=15 
    && 从左往右算 a>b -->false了 逻辑与 后面的根本就不进行计算了
      

  4.   

    对,&&是短路运算符,符号前面为false就不会执行后面的语句,若a>b为真,则会执行之后的语句,b就会自增1
    如果用的是&符号,那么无论符号前是真是假,都会执行后面的语句
      

  5.   

    (a>b)&&(c>b++) 这样写是等价的吧  b++那优先级只是在 && 后面的一个表达式里面 具有优先计算 
    && 计算的特性就是 左边一个表达式一旦为false 系统就认为后面一个表达式已经没有计算的意义了 也就不进行计算了
      

  6.   

    好吧 系统计算的 a>b && ... 这个表达式时,首选检查第一个表达式 a>b 它并没有进行计算 而是把数据与运算符分别存入不通的堆栈中,当读到 && 系统发现 > 的优先级高于 && 这个时候已经进行 计算了 ,然后 整个表达式变成了 false && c>...,系通机械 将数据分别存储 发现 > 优先级高于 && 因为 && 的特性 左边的值为false 右边的不参与计算 所以 这个>没有计算  在后面就是 b++  这个是一目运算 比>优先级高 这两家伙优先级都比 && 高 就意味着怎么进行 计算 最终计算的都是 && 这个运算了 然后 && 的短路特性有展现出来了如果是平行运算 你说的没错 ++的运算的确是最高 主要是这个有个 && 如果换成 || 后面 哪一个表达也会进行计算 这个东东 其实和 小学 学的四则混合运算有类型的地方
      

  7.   

    无论你后面是啥运算符,优先级有多高,都会先执行&&左边的部分,再执行&&右边的部分。