zoukankan      html  css  js  c++  java
  • i++与++i陷阱

    对于++i与i++编程必不可少,它们的区别:一般人只知道++i是先将i加一再进行其他操作,i++是先将i进行其他操作,再将其加一。

    但是对于i++其中的执行过程,语言环境很关键。先来两个程序,看结果是否是认为的结果:

    1、Java环境下

    public class JiaJia {
    public static void main(String[] arg){
        int count1=0,count2=0;
        for(int i=0;i<10;++i)
            {
              count1=count1++;
              count2=++count2;
            }
        System.out.println("count1="+count1);
        System.out.println("count2="+count2);
    }
    }

    结果 

    2、C++环境下

    #include<stdio.h>
    #include<string.h>
    using namespace std;
    int main(){
    int count1=0,count2=0;
    for(int i=0;i<10;++i)
    {
    count1=count1++;
    count2=++count2;
    }
    printf("count1=%d ,count2=%d",count1,count2);
    }

    结果:

    3、结果分析

    C++环境下是我们认为的结果,而Java环境下为什么不是我们认为的结果?

    在Java环境下,对于count=count++,处理过程是:首先把count的值(注意是值,不是引用)拷贝到一个临时变量区,然后对count加一,最后返回临时变量区的值。

  • 相关阅读:
    如何打开windows的远程桌面
    mongodb存储引擎
    使用场景举例
    webpack初识
    mongodb快速入门
    mongodb初识
    mysql主从复制与读写分离
    gradle简单配置跟模块依赖
    mysql执行计划
    synchronized的可见性理解
  • 原文地址:https://www.cnblogs.com/duange/p/6511416.html
Copyright © 2011-2022 走看看