您的位置:首页 > 其它

对于i=i++的理解

2016-03-15 23:50 246 查看
之前我也一直觉着我对于这块应该是狠懂了,i++,++i,一个是先用后加,一个是先加后用。我碰到的语言教程也都这么说,至少c语言和java语言都这么说。我们

一般情况下用也都是a = i++以这种形式去用的,但是直到今天有人这样用i=i++在java中。如果这样写:int i = 0; i = i++;大家知道结果是啥不,是0呐,不管怎么弄都是0。其实这个

跟java的编译器有关。即当为java时,i的值是要被临时拷贝出来的,i的原始值存放在后开辟的内存中,最后这个值将赋值给j,这样j=i++后,j就会得到i的值,而i又将自加,所以,在释放内存之后,原来存放j和i的地方将得到值将是:j(此时的值等于初始i值)和i(i自加后的值)。这样把j换成i就明白了

上图了


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: