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

如题 (总结要点)

  • 假设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的图:
原文地址:https://www.cnblogs.com/zhazhaacmer/p/11196397.html