码迷,mamicode.com
首页 > 编程语言 > 详细

关于 " i=i++"是否等价于"i=i+1"的问题探讨 -Java版/C版

时间:2019-07-16 18:31:45      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:bit   i+1   ==   exec   public   std   i++   class   names   

如题 (总结要点)

  • 假设i=1 ,那么 i=i++ 的结果也就是2, 对吗? 不对,是1.
    -总结如下:
    技术图片

  • 测试过程如下:

1.java版

public class Test {
    public static void main(String[] args) {
        int i=1;
        i=i++;             
        System.out.println("i=="+i);
        int j=i++;          
        int k=i+ ++i * i++;  
        System.out.println("i="+i);
        System.out.println("j="+j);
        System.out.println("k="+k);
    }
}

2. 输出结果

i==1
i=4
j=1
k=11

3.测试C版

#include <bits/stdc++.h>
#define  inf  0x3f3f3f3f
#define N 100009
#define minn 1e-8   //山枫叶纷飞
using namespace std;
#define ll long long

int main(){

    int i=1;
    i=i++;
    cout<<i<<endl;

    int j=i++;
    cout<<"j="<<j<<endl;
    cout<<"i="<<i<<endl;
    return 0;
}

--输出结果--
1
j=1
i=2

Process returned 0 (0x0)   execution time : 0.185 s
Press any key to continue.

综上所述

  • 无论是C还是Java , i=i++之后的结果都是原值i.
  • 看一章我盗来+灵魂huihua的图:
  • 技术图片

关于 " i=i++"是否等价于"i=i+1"的问题探讨 -Java版/C版

标签:bit   i+1   ==   exec   public   std   i++   class   names   

原文地址:https://www.cnblogs.com/zhazhaacmer/p/11196397.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!