zoukankan      html  css  js  c++  java
  • 20150819(i++与++i的思考)

    今天看到一个很有趣的东西,关于表达式优先级的问题。如下。

    1 int i=0;
    2 int j=(i++)+(i++);
    View Code

    j的值是多少?

    分析:编译器是从左往右编译也就是说编译器先做(i++)

    1、(i++)由于是++所以这个表达式为i也就是0

    2、执行上面的++运算,此时i=1

    3、执行右边的(i++),同1也是返回i但是此时i是1

    4、执行两个表达式中间的+操作即:0+1=1也就是说结果j=1

    综上所述:++操作符在后的时候先计算表达式的值然后在执行++操作。(这里其实还涉及到一个表达式的概念)

    那如果++在前呢?该是多少呢?

    int i=0;
    int j=(++i)+(++i);
    

     分析:

    1、(++i)由于++在前所以先执行++操作再进行表达式的计算也就是这个表达式的值为++0也就是1

    2、(++i)同1但是此时的i为1所以这个表达式的值为++1=2

    3、计算整个表达式的值为1+2=3

    结论:1、++在前先算表达式的值再对变量执行++操作,反之则是先对变量执行++操作再算表达式的值。

       2、编译器是从左到右按照优先级顺序依次进行计算的。

  • 相关阅读:
    解决ajax无法给js全局变量赋值的问题
    jquery对象和dom对象
    js浏览器调试
    elastic search使用
    elastic search远程测试
    elastic search安装与本地测试
    jQuery常用技巧
    Jquery操作cookie
    HTML特殊字符编码对照表
    DpQuery.js
  • 原文地址:https://www.cnblogs.com/Schme/p/4741807.html
Copyright © 2011-2022 走看看