m=m++,结果让你大吃一惊。

Posted 在天成象

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了m=m++,结果让你大吃一惊。相关的知识,希望对你有一定的参考价值。

如图,本来以为m=m++和m++是同一个效果,没想到m的值居然还是0.

原来m++是一个表达式,是有返回值的,它的返回值就是m自加前的值,Java对自加是这样处理的:首先把m的值(注意是值,不是引用)拷贝到一个临时变量区,然后对m变量加1,最后返回临时变量区的值。程序第一次循环时的详细处理步骤如下: 步骤1 JVM把m值(其值是0)拷贝到临时变量区。 步骤2 m值加1,这时候m的值是1。 步骤3 返回临时变量区的值,注意这个值是0,没修改过。 步骤4 返回值赋值给m,此时m值被重置成0。

只能说java的套路太深了。

据说在c++里面,m=m++和m++真的是一个效果哦。

以上是关于m=m++,结果让你大吃一惊。的主要内容,如果未能解决你的问题,请参考以下文章

你的薪水增速跑赢GDP了没

按钮操作后显示结果到表格视图单元格

ATcoderAtCoder Beginner Contest 159题解

有符号/无符号比较给出了意想不到的结果[重复]

keepalived实现mycat高可用问题排查;道路坎坷,布满荆棘,定让你大吃一惊!

使用答案键替换基于计算机的测试结果数据集的值