关于a=a++的一个小陷阱

关于a=a++的一个小陷阱

看以下代码

public static void main(String[] args) {
	int a = 9;
	a = a++;
	System.out.println("a=" + a);
}

相信很多人能不假思索的回答控制台打印a=10,那么你就落入陷阱了,控制台实际输出a=9。
在这里插入图片描述
为什么呢?a = a++ 是一个陷阱代码,跟a++的具体实现有关,该代码实际执行类似如下:

int tmp = a;    // a=9
a = a + 1;      // a=100
return tmp;     // a++的结果为tmp
 
a = tmp;        // tmp=9,a=9

猜你喜欢

转载自blog.csdn.net/weixin_43611145/article/details/87178714