代码:
package com.sunlei.test;
public class Inc {
public static void main(String[] args) {
Inc inc = new Inc();
int i = 0;
inc.fermin(i);
System.out.println("i="+i);
int temp= i++;
System.out.println("temp="+temp);
System.out.println("iiii="+i);
}
void fermin(int i){
System.out.println("ii="+i);
i++;
System.out.println("iii="+i);
}
}
输出结果:
ii=0
iii=1
i=0
temp=0
iiii=1
解析:java用了中间缓存变量的机制,所以,i=i++可换成如下写法:
temp=i;
i=i+1;
i=temp;
对于fermin(int i)方法传入的是形参(而不是地址),在函数内的对形参的修改不会修改外部变量,因此i的值依然是0.